2011-06-27 15 views
8

M-x < TAB> imprime todas las funciones definidas.¿Cómo imprimir todas las variables definidas en emacs?

Para verificar si una variable está definida o no está evaluando la siguiente expresión, (boundp 'variable-name) C-x C-e imprimirá t si el nombre-variable se define else nill.

Cómo imprimir todas las variables definidas en emacs.

+0

¿Por qué quieres hacer esto? –

+1

¿Qué quiere decir con "M-x imprime todas las funciones definidas"?'M-x' le pide que ingrese el nombre de un comando interactivo y luego lo ejecuta. (Y si quiere decir que puede presionar TAB para ver la lista de autocompletado ... bueno, esas son solo las funciones interactivas, no "todas las funciones definidas".) – phils

+0

Publiqué como Mx que no se muestra, lo edité a Mx < TAB \>, que funciona –

Respuesta

8

No está claro exactamente qué es lo que quiere hacer con una lista completa de símbolos, ya que la forma en que M-x muestra los nombres de las funciones es algo especializado.

Suponiendo que se desea obtener mediante programación una lista de todos los símbolos definidos, así es como auto-complete.el lo hace:

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

Tenga en cuenta que también se puede introducir M-x describe-var RET y pulse TAB para obtener una lista de terminación ordenada de todos los símbolos

+1

Bueno, lo que probablemente quiera, entonces, es 'Mx customize-group RET org RET'. – sanityinc

+0

Gracias por eso, definitivamente me ayuda a entender las configuraciones de ejemplo de modo de organización. –

4

Supongo que (apropos-variable "." t) le mostraría todas las variables definidas en ese momento.

editar: supuse erróneamente, al parecer.

Curiosamente, esto realmente me muestra significativamente menos resultados que las autocompletaciones de describe-var.

¿Alguien puede arrojar luz sobre eso?

p. Ej. Las diferencias entre estos, cuando winner-mode se ha habilitado:

  • C-uM-xapropos-variableRETwinner-RET
  • C-hvwinner-TAB

edición 2: Ah ... parece que a propósito puede ignorar cualquier símbolo que carece de una cadena de documentación.

Si es posible, sugiero que se reasigne la respuesta aceptada.

2

Extrapolando (¡en gran medida!) Lo que se está pidiendo, aquí hay una manera de obtener una lista bastante impresa de todas las variables de buffer-local con sus valores. Esto es muy conveniente para descubrir por qué, por ejemplo, un modo no se comporta de la manera que uno espera.

Para obtener este perfil, hacer:

M-x pp-eval-expression RET (buffer-local-variables) RET 

porciones relevantes de esta lista se pueden agregar casi palabra por palabra en un archivo .dir-locals.el para su uso con varios archivos.

Cuestiones relacionadas