Как сохранить комментарии к переменным, установленным с помощью настройки M-x в emacs?

Когда я устанавливаю переменные через M-x customize, значения сохраняются в этом большом, автоматически сгенерированном, упорядоченном по алфавиту списке в моем файле .emacs.

Проблема в том, что мне нравится документировать, почему я выбрал конкретное значение, отличное от значения по умолчанию для конкретной переменной. Если я сделаю это, добавив комментарии elisp в автоматически сгенерированный список, они будут удалены в следующий раз, когда я настрою другую переменную.

Есть ли способ заставить Custom сохранить мои комментарии или есть какой-то другой стандартный способ аннотировать это?


person agentofuser    schedule 09.08.2009    source источник


Ответы (2)


Лично я переместил все свои настройки из настройки в свой файл .emacs. В основном потому, что мне действительно не нравится пользовательский интерфейс для настройки.

Итак, вместо этого мой пользовательский файл:

(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))

У меня есть:

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

При этом custom-set-variable принимает ряд аргументов, один из которых является комментарием. Итак, вы можете сделать:

(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"))

Комментарий будет удален только тогда, когда вы измените значение переменной, а не когда вы измените другие переменные. Я не уверен, что это правильное использование для этого. C-h f custom-set-variables есть дополнительная информация.

person seth    schedule 09.08.2009
comment
Хм.. Я не очень хорошо знаком с Elisp, но есть ли способ каждый раз опускать ноль? describe-function вместо custom-set-variables говорит, что порядок аргументов (SYMBOL EXP [NOW [REQUEST [COMMENT]]]). Есть ли способ переместить NOW и REQUEST в конец, чтобы я мог их не указывать? - person agentofuser; 10.08.2009
comment
вы можете написать макрос elisp для этого;) - person Daniel Dinnyes; 24.04.2015

По крайней мере, начиная с 22.3, вы можете включать комментарий, когда что-то настраиваете. Нажмите «Состояние» -> «Добавить комментарий». Это сохраняется в командах настройки в вашем .emacs:

'(global-hi-lock-mode t nil nil "Да! Да да да да ДА!")

(По-видимому, я был взволнован, когда нашел эту настройку.)

person Community    schedule 29.09.2009