2013-07-04 300 views
8

如果我調出emacs的自定義界面,編輯一個變量,然後設置並保存它,它的新值將存儲在我的i​​nit文件的(custom-set-variables ...)列表中。用elisp保存「自定義設置變量」

現在,假設我修改了elisp中的變量值(使用(setq ...)或其他)。

如何使用elisp而不是交互式界面將此新值保存到(custom-set-variables ...)列表

+0

我知道我canb只是寫'(setq'命令到我的init文件,但那不是我要找的,我需要一個自動的方法來保存變量 – Malabarba

+0

默認行爲是不列出變量定義當用用戶界面保存自定義設置變量時,使用'setq'設置變量;並且,通常不會通過用戶界面覆蓋這些'setq'變量對於手動設置的用戶界面保存的變量,實際上需要在你的elisp代碼中使用相同的格式 - 也就是你在用戶界面保存後看到的相同格式。長話短說,如果你使用'setq' - 你不能從這裏到達 - 除非你使用一個新的' setq'在之前的'setq'之後加載,有效地重新定義它。 – lawlist

+0

魔法與'.../lisp/cus-edit.el'和'.../lisp/custom.el'發生在一起 – lawlist

回答

7

看起來你正在尋找customize-save-variable

0

`自定義文件的價值」說,在您的自定義存儲。這是一個普通的Emacs Lisp,e.i.文本文件。您可以從任何程序更改值,創建elisp命令或通過sed,perl,python,emacs-batch模式等從外部更改它。

+0

確實如此,但必須比手動解析自定義文件更容易(且風險更低)。 – Malabarba