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

问题描述 投票:7回答:2

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

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

emacs elisp customization
2个回答
6
投票

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

一般来说,最好还是查看变量(用户选项)的defcustom,看看它的:set插槽做了什么等等。没必要,但在尝试以编程方式设置值之前要好好知道。

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


更新:

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.