GNU Emacs 文本编辑器的绝大部分代码,均由名为 Emacs Lisp 的编程语言编写而成。你可以用 Emacs Lisp 编写新代码,并将其作为编辑器扩展加载使用。不过,Emacs Lisp 并非只是一门扩展语言:它本身就是一套完整的计算机编程语言,可像其他编程语言一样通用。
由于 Emacs Lisp 专为编辑器场景设计,它自带文本扫描、解析等专用能力,同时也支持文件、缓冲区、显示、子进程等相关功能。Emacs Lisp 与编辑功能深度集成:编辑命令本身就是可在 Lisp 程序中直接调用的函数,自定义参数则是普通的 Lisp 变量。
本手册力求完整介绍 Emacs Lisp。若你是初学者,可阅读由 Bob Chassell 撰写、自由软件基金会出版的 《Emacs Lisp 编程入门》。本手册假定你已相当熟悉 Emacs 的基本编辑操作,相关基础内容请参阅 《GNU Emacs 手册》。
一般而言,前面章节介绍 Emacs Lisp 中与多数编程语言共通的特性,后续章节则讲解 Emacs Lisp 独有的、或与编辑功能直接相关的特性。
本文档 为 GNU Emacs Lisp 参考手册,对应 Emacs 版本:30.2.