3.6.4 let 绑定变量的方式

Emacs Lisp 支持两种将变量名与其值绑定的方式。 这些方式会影响程序中特定绑定生效的代码范围。 由于历史原因,Emacs Lisp 默认使用名为动态绑定(dynamic binding)的变量绑定方式。 但在本文档中,除非另有说明,我们主要讲解更推荐的绑定方式—— 词法绑定(lexical binding)(未来,Emacs 维护者计划将默认绑定方式改为词法绑定)。 如果你之前使用过其他编程语言,很可能已经熟悉词法绑定的行为。

要在程序中使用词法绑定,应在 Emacs Lisp 文件的第一行添加:

;;; -*- lexical-binding: t -*-

相关更多信息,see Variable Scoping in The Emacs Lisp Reference Manual