2012-03-02 23 views
5

Cómo imprimir todos los símbolos en emacs usando elisp.imprimir símbolos de emacs en elisp

Es posible probar si un objeto ceceo es un símbolo usando la función symbolp . Pero cómo coleccionar todos los símbolos.

¿Es posible acceder a la tabla de símbolos de emacs?

+0

posible duplicado de [¿Cómo imprimir todas las variables definidas en emacs?] (Http://stackoverflow.com/questions/6493331/how-to-print-all-the-defined-variables-in-emacs) – sanityinc

Respuesta

6

Aquí hay una manera de hacerlo:

(require 'cl) 

(loop for x being the symbols 
    if (boundp x) 
    collect (symbol-name x)) 

loop es una macro Common Lisp, que ha sido portado a Emacs Lisp también. Es parte del paquete cl (parte de la distribución estándar de Emacs), que tendrá que usar require.

Otra opción a considerar es probablemente:

(apropos "." t) 

La invocación apropos tomará mucho más tiempo en completarse, pero vas a obtener más información sobre los símbolos de esa manera.

+0

recibo un error (void void-funtion). Estoy usando la versión 22.1.1 de emacs en la versión ubuntu 8.04 de 64 bits. También revisé el manual de referencia de emacs lisp, no hay explicación sobre el ciclo de función. ¿Debo tener que instalar un paquete separado para obtener la función de bucle? –

+0

Tendrá que '(requerir 'cl)' para tener 'loop', sin embargo emacs22 es un (muy?) Viejo emacs. Debería considerar usar emacs24 o al menos emacs23. – Daimrod

4

simplemente para la corrección, aquí te mostramos cómo una lista de todos los símbolos sin usar el paquete cl:

Ir a un búfer de nueva creación, y el tipo M-:(mapatoms (lambda (s) (insert (symbol-name s) "\n")))RET. Eso insertará los nombres de todos los símbolos existentes en el búfer, uno por línea.

Cuestiones relacionadas