技术文档分享:Emacs Lisp元素

前言,来自文档翻译稿)本书旨在为你提供 Emacs Lisp(亦称“Elisp”)的宏观视角。这是你用来扩展 Emacs 的编程语言。Emacs 是一个可编程的文本编辑器:它解释 Emacs Lisp 并相应地执行操作。你可以在不编写任何一行代码的情况下使用 Emacs:它已经具备了许多功能。不过,你随时可以通过对你自己编写或从他人处(例如以包的形式)获取的 Elisp 代码进行求值,来对其编程以精确地执行你想要的操作。

对你自己的文本编辑器进行编程既有用又有趣。例如,你可以将一系列你反复执行的操作组合成一个单一命令,然后将其分配给一个按键绑定:按下该键——砰!——一次性执行所有中间任务。这让你更高效,同时也将编辑器变成了一个舒适的工作环境。

有趣的部分在于你如何着手编写代码。没有任何你必须遵守的义务。完全没有!你为了编程而编程。这是一种扩展你视野的娱乐活动。此外,你还能培养你的 Elisp 技能,如果你将来选择修改 Emacs 的某些行为,这些技能可能会很有用。

捣鼓 Emacs 是体验的一部分。它教会你毫不妥协地坚持自己对于编辑器如何工作的看法。关键在于掌握足够的 Elisp 知识,这样你就不会因为一些琐碎的事情不起作用而花费太多时间去“玩乐”或感到沮丧。我写这篇文章时,自己就是一个没有计算机科学或相关学科背景的捣鼓者:我是通过在编辑器中反复试验、摸索来学习 Emacs Lisp 的。我名义上的目标是改进我一遍又一遍重复的某些微小动作:我追求效率,结果却发现了更深刻的东西。学习扩展我的编辑器是一次充实的体验,结果我变得更有效率了。Emacs 做了我想让它做的事情,我对此很满意。

本书的每一章通常都简短且切中要点。有些对初学者更友好,而另一些则深入探讨了高级主题。各章之间存在链接,这正是一个参考手册应有的做法。你可以来回查阅以找到你需要的内容。

你在这里会看到文本是散文和代码的结合。后者可能是实际的 Elisp 代码,也可能是捕捉底层模式的伪代码。我鼓励你在 Emacs 内部或随时可以打开 Emacs 的情况下阅读本书。这样,你可以尝试运行我给你的函数,以进一步体会它们的细微之处。

我采用的“宏观视角”方法旨在涵盖我在使用 Emacs Lisp 时经常遇到的概念。本书不能替代 Emacs Lisp 参考手册,并且绝不应被视为我对任何 Elisp 形式进行评论的真理之源。

祝你好运,享受过程!

8 个赞