2010-11-29 61 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適用於任何變量,無論它是否是用戶的選擇。