program - emacs source code
¿Cuál es la diferencia entre setq y set-variable en emacs? (3)
Además de lo que se dijo anteriormente, para set-variable
, como dice la cadena doc:
VARIABLE should be a user option variable name, a Lisp variable meant to be customized by users.
setq
aplica a cualquier variable, sea o no una opción de usuario.
¿Cuál es la diferencia entre setq y set-variable en emacs lisp? ¿Cuándo debo usar setq y cuándo debo set-variable?
set-variable
es un comando interactivo, lo que significa que puede escribir Mx set-variable RET para solicitar de forma interactiva un nombre y un valor de variable. setq
no es un comando interactivo, lo que significa que solo es adecuado para escribir en el código Emacs Lisp. Personalmente, nunca uso set-variable
en mi código Lisp, solo de manera interactiva, cuando quiero darle un valor a una variable que tenga un efecto inmediato en mi edición de texto, como (por ejemplo) establecer indent-tabs-mode
en t
o nil
Otra diferencia es que setq
puede establecer múltiples variables a la vez. Por ejemplo, en mi archivo .emacs en OS XI tengo:
(setq mac-command-modifier ''meta
mac-option-modifier ''super)
set-variable
no puede hacer eso.
setq
es una forma especial , mientras que set-variable
es una función interactiva.
De la documentación :
Para mí, el uso principal del comando
set-variable
es sugerir variables que me gustaría configurar en mi archivo.emacs
. Ahora hay más de 700 variables de este tipo, demasiadas para recordarlas fácilmente. Afortunadamente, puede presionar<TAB>
después de llamar al comandoMx set-variable
para ver la lista de variables.