Emacs 24 现在具有词法范围的变量。当然,它仍然具有动态范围的变量。现在它兼具了两者,我对变量何时具有哪种作用域感到非常困惑。有一个 lexical-binding
变量控制何时启用词法绑定(bind),我想我读过一些关于 defvar
现在声明动态范围变量的内容,但总的来说我是很迷失。对 Emacs 24 的新作用域规则有很好的解释吗?或者换句话说,当我查看为 Emacs 24 编写的 Emacs Lisp 代码中的变量时,如何判断该变量正在使用什么作用域?
最佳答案
本手册是权威来源。从这里开始:
C-hig (elisp) 变量作用域
RET
我最初在这个答案中引用了手册,但该信息(可追溯到 Emacs 24.0.90.1)稍微过时了。最好从 Emacs 内部阅读手册,这样信息对于您正在使用的版本来说是正确的。
如果你特别想在网页上阅读,当前版本是:
http://www.gnu.org/software/emacs/manual/html_node/elisp/Variable-Scoping.html
关于emacs - Emacs 24 中变量作用域的新规则是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7654848/