2009-08-09 21 views
7

Cuando establezco variables a través de M-x customize, los valores se almacenan en esta gran lista ordenada alfabéticamente y autogenerada en mi archivo .emacs.¿Cómo mantener los comentarios sobre las variables establecidas a través de "M-x personalizar" en emacs?

El problema es que me gusta documentar por qué elegí un valor en particular que no sea el predeterminado para una variable en particular. Si hago eso agregando comentarios de elisp dentro de la lista generada automáticamente, son eliminados la próxima vez que personalizo otra variable.

¿Hay alguna manera de hacer que Custom guarde mis comentarios, o hay alguna otra forma estándar de anotar esto?

Respuesta

5

Personalmente, moví todas mis configuraciones de personalizar y en mi archivo .emacs. Principalmente porque realmente no me gusta la interfaz de usuario para personalizar.

Así, en lugar de esto es mi archivo personalizado:

(custom-set-variables 
    ;; custom-set-variables was added by Custom. 
    ;; If you edit it by hand, you could mess it up, so be careful. 
    ;; Your init file should contain only one such instance. 
    ;; If there is more than one, they won't work right. 
'(scheme-program-name "scheme") 
'(tetris-use-glyphs nil)) 

tengo:

(setq 
    scheme-program-name "scheme"  ; because I like it 
    tetris-use-glyphs nil)   ; it's an example 

Dicho encargo-set-variable de hace tomar una serie de argumentos, uno de los cuales es un comentario. Por lo que podría hacer:

(custom-set-variables 
    ;; custom-set-variables was added by Custom. 
    ;; If you edit it by hand, you could mess it up, so be careful. 
    ;; Your init file should contain only one such instance. 
    ;; If there is more than one, they won't work right. 
'(scheme-program-name "scheme" nil nil "this is a comment") 
'(tetris-use-glyphs nil nil nil "This is another comment")) 

El comentario sólo va a perder la cabeza cuando se cambia el valor de la variable, no al cambiar otras variables. Sin embargo, no estoy seguro de que este sea el uso adecuado para esto. C-h f custom-set-variables tiene más información.

+0

Hm .. No estoy muy familiarizado con Elisp, pero ¿hay alguna forma en que pueda omitir el "nil nil" cada vez? 'describe-function' para' custom-set-variables' dice que el orden de los argumentos es '(SYMBOL EXP [NOW [REQUEST [COMMENT]]])'. ¿Hay alguna manera de mover 'NOW' y' REQUEST' hasta el final, así que opcionalmente puedo dejarlos? – hsribei

+0

puedes escribir una macro elisp para eso;) –

4

Al menos desde 22.3, puede incluir un comentario cuando personaliza algo. Haga clic en "Estado" -> "Agregar comentario". Esto se guarda en los comandos de personalización en su .emacs:

'(-hi-lock-mode mundial t nil nil "Sí Sí Sí Sí Sí Sí!")

(Al parecer, estaba emocionado cuando encontré esa personalización.)

Cuestiones relacionadas