emacs lisp中setq和set-variable有什麼區別。什麼時候應該使用setq,何時應該設置變量。emacs中setq和set-variable有什麼區別?
27
A
回答
24
set-variable
是一個交互式命令,這意味着可以鍵入M-X組變量RET交互地提示輸入變量名和值。 setq
不是一個交互式命令,這意味着它只適用於編寫Emacs Lisp代碼。就我個人而言,我從來沒有在我的Lisp代碼中使用set-variable
,只是交互式地爲我的文本編輯立即生效,例如將indent-tabs-mode
設置爲t
或nil
。
另一個區別是setq
可以一次設置多個變量。舉例來說,在我的.emacs文件OS X上,我有:
(setq mac-command-modifier 'meta
mac-option-modifier 'super)
set-variable
不能做到這一點。
10
setq
是special 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
適用於任何變量,無論它是否是用戶的選擇。
相關問題
- 1. emacs中tex-mode和latex-mode和LaTeX-mode有什麼區別
- 2. 有什麼區別`和$(Bash中有什麼區別?
- 3. emacs中的「abort」和「terminate-thread」有什麼區別?
- 4. emacs中'M-x load-file'和'M-x load-library'有什麼區別?
- 5. 在Lisp(Clojure,Emacs Lisp)中,list和quote有什麼區別?
- 6. 在emacs中,cl-flet和cl-letf有什麼區別?
- 7. 有什麼區別? :和||
- 8. &&和||有什麼區別?
- 9. 「/」和「/ *」有什麼區別?
- 10. 有什麼區別:。!和:r!?
- 11. ==和===有什麼區別?
- 12. Appender和〜有什麼區別?
- 13. $ @和$ *有什麼區別?
- 14. is和=有什麼區別?
- 15. #.00和#。##有什麼區別?
- 16. `==`和`is`有什麼區別?
- 17. '=='和'==='有什麼區別?
- 18. /和/#/有什麼區別?
- 19. | 0和~~有什麼區別?
- 20. `&`和`ref`有什麼區別?
- 21. ==和===有什麼區別?
- 22. ==和===有什麼區別?
- 23. `{}`和`[]`有什麼區別?
- 24. JavaScript和=== ===有什麼區別?
- 25. difftime和' - '有什麼區別?
- 26. =和==有什麼區別?
- 27. emacs中shell和eshell的區別是什麼?
- 28. xtype和別名有什麼區別?
- 29. Mixpanel:識別()和people.identify()有什麼區別?
- 30. wordpress中is_page()和is_paged()有什麼區別?