如果我调出emacs的自定义界面,编辑一个变量,然后设置并保存它,它的新值将存储在我的init文件的(custom-set-variables ...)
列表中。用elisp保存“自定义设置变量”
现在,假设我修改了elisp中的变量值(使用(setq ...)
或其他)。
如何使用elisp而不是交互式界面将此新值保存到(custom-set-variables ...)
列表?
如果我调出emacs的自定义界面,编辑一个变量,然后设置并保存它,它的新值将存储在我的init文件的(custom-set-variables ...)
列表中。用elisp保存“自定义设置变量”
现在,假设我修改了elisp中的变量值(使用(setq ...)
或其他)。
如何使用elisp而不是交互式界面将此新值保存到(custom-set-variables ...)
列表?
看起来你正在寻找customize-save-variable
`自定义文件的价值”说,在您的自定义存储。这是一个普通的Emacs Lisp,e.i.文本文件。您可以从任何程序更改值,创建elisp命令或通过sed,perl,python,emacs-batch模式等从外部更改它。
确实如此,但必须比手动解析自定义文件更容易(且风险更低)。 – Malabarba
是的,customize-save-variable
是您的朋友。另请参阅http://www.emacswiki.org/emacs/CustomizingAndSaving关于(a)对选项和面孔进行更改和(b)保存选项之间的关系。
我知道我canb只是写'(setq'命令到我的init文件,但那不是我要找的,我需要一个自动的方法来保存变量 – Malabarba
默认行为是不列出变量定义当用用户界面保存自定义设置变量时,使用'setq'设置变量;并且,通常不会通过用户界面覆盖这些'setq'变量对于手动设置的用户界面保存的变量,实际上需要在你的elisp代码中使用相同的格式 - 也就是你在用户界面保存后看到的相同格式。长话短说,如果你使用'setq' - 你不能从这里到达 - 除非你使用一个新的' setq'在之前的'setq'之后加载,有效地重新定义它。 – lawlist
魔法与'.../lisp/cus-edit.el'和'.../lisp/custom.el'发生在一起 – lawlist