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. 有什么区别`和$(Bash中有什么区别?
- 2. 在emacs中,cl-flet和cl-letf有什么区别?
- 3. 在Lisp(Clojure,Emacs Lisp)中,list和quote有什么区别?
- 4. emacs中'M-x load-file'和'M-x load-library'有什么区别?
- 5. emacs中的“abort”和“terminate-thread”有什么区别?
- 6. ==和===有什么区别?
- 7. ==和===有什么区别?
- 8. 有什么区别? :和||
- 9. ==和===有什么区别?
- 10. '=='和'==='有什么区别?
- 11. `&`和`ref`有什么区别?
- 12. 有什么区别:。!和:r!?
- 13. | 0和~~有什么区别?
- 14. Appender和〜有什么区别?
- 15. emacs中shell和eshell的区别是什么?
- 16. xtype和别名有什么区别?
- 17. XSD中IDREF和IDREFS有什么区别?
- 18. COM中IDispatch和IUnkown有什么区别?
- 19. 在JavaScript中,'\'和'\ n'有什么区别?
- 20. =和在mysql中有什么区别?
- 21. Lisp中'和#'有什么区别?
- 22. python中的{}和[]有什么区别?
- 23. 在Ember.js中,[]和Ember.A([])有什么区别?
- 24. VB6中Sub和Function有什么区别?
- 25. 列表中的:::和++有什么区别?
- 26. C++中#import和#include有什么区别?
- 27. printf中%c和%C有什么区别?
- 28. wordpress中is_page()和is_paged()有什么区别?
- 29. Java中boolean和Boolean有什么区别?
- 30. SQL中的“LIKE”和“=”有什么区别?