如何在Emacs Lisp中以编程方式设置自定义变量?

时间:2013-08-30 23:31:57

标签: emacs elisp customization

在Emacs中,某些变量在通过M-x自定义设置时具有特殊行为,当您通过setq设置相同变量时,这些行为不会被触发。是否有一种编程方式来设置这样的变量,以便触发特殊行为,就像用户通过自定义设置变量一样?

此外,是否有以编程方式将值保存到用户自定义文件的功能?我正在尝试实现一种功能,将默认元素重新添加到列表中,而不会删除用户添加的元素。

2 个答案:

答案 0 :(得分:6)

customize-set-variable是你想要的,而不是custom-set-variables(这里不需要)。

一般来说,最好还是查看defcustom变量(用户选项),查看其:set插槽的作用等。不是必需的,但很好在尝试以编程方式设置值之前就知道了。

help-gnu-emacs@gnu.org问题的回复也可能有所帮助: http://lists.gnu.org/archive/html/help-gnu-emacs/2013-08/msg00544.html


更新

您之后编辑了您的问题以询问是否保存了新值。为此,您可以使用customize-save-variable。它设置并保存新值。

答案 1 :(得分:0)

使用函数default-value后跟提到的custom-set-variable可能会这样做。