2010-11-29 86 views

回答

24

set-variable是一个交互式命令,这意味着可以键入M-X组变量RET交互地提示输入变量名和值。 setq不是一个交互式命令,这意味着它只适用于编写Emacs Lisp代码。就我个人而言,我从来没有在我的Lisp代码中使用set-variable,只是交互式地为我的文本编辑立即生效,例如将indent-tabs-mode设置为tnil

另一个区别是setq可以一次设置多个变量。举例来说,在我的.emacs文件OS X上,我有:

(setq mac-command-modifier 'meta 
     mac-option-modifier 'super) 

set-variable不能做到这一点。

10

setqspecial form,而set-variable是一个交互功能。

the docs

对我来说,主要使用 set-variable命令是建议我可能要在 我.emacs文件设置 变量。现在有更多的 比700这样的变量 - 很多 很容易记住。幸运的是,在调用 M-x set-variable命令后,您可以按<TAB>命令查看变量列表 。

3

况且什么上面说,对于set-variable,如doc字符串说:

 
    VARIABLE should be a user option variable name, a Lisp variable 
    meant to be customized by users. 

setq适用于任何变量,无论它是否是用户的选择。