Algunas personas pueden pensar que es más fácil de usar setq
. Algunas personas pueden pensar que es más lispy. En realidad, es ingenuo en el caso general.
Es cierto que para algunas opciones de usuario no importa. Pero para otros, sí importa, y setq
es el enfoque equivocado para esas opciones. Entonces, como regla general, setq
es el enfoque equivocado.
Si usa custom-set-variables
o en customize-set-variable
lugar de setq
, o si usa la interfaz de usuario Personalizar (por ejemplo M-x customize-option
), entonces está seguro de que cualquier código de inicialización o actualización que se necesite para el valor de la opción se activará automáticamente y se ejecutará según sea necesario. Si lo usa setq
, esto no se hará.
Ahora, también es el caso de que la mayoría de las opciones de usuario, especialmente muchas de ellas escritas para bibliotecas de terceros, no hacen uso de las defcustom
palabras clave :set
y :initialize
, y el uso setq
no es importante para ellas. Pero muchas opciones de Emacs vanilla utilizan esas palabras clave, y para aquellos que lo hacen, setq
no es lo correcto. Entonces, si desea usar el código Lisp y no la interfaz de usuario Personalizar para configurar sus opciones, es mejor que use custom-set-variables
o en customize-set-variable
lugar de setq
. Nunca duele y a veces ayuda (mucho).
Pero lo que recomiendo es hacer ambas cosas:
Use la interfaz de usuario Personalizar en lugar de escribir el código Lisp para esto.
Defina variablecustom-file
, de modo que Personalizar escriba personalizaciones en ese archivo y no en su archivo de inicio ( ~/.emacs
). IOW, mantenga su código de inicialización escrito a mano separado del código automático escrito por Customize.