在Emacs中,某些变量在通过M-x自定义设置时具有特殊行为,当您通过setq
设置相同变量时,这些行为不会被触发。是否有一种编程方式来设置这样的变量,以便触发特殊行为,就像用户通过自定义设置变量一样?
此外,是否有以编程方式将值保存到用户自定义文件的功能?我正在尝试实现一种功能,将默认元素重新添加到列表中,而不会删除用户添加的元素。
答案 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
可能会这样做。