关于阅读本文

在整篇文档中,你会看到许多可以在 Emacs 内部直接运行的小型示例程序。如果你在 GNU Emacs 的 Info 模式中阅读本文,可以直接运行文中出现的程序。(操作十分简单,相关方法会在示例出现时说明。)你也可以一边运行着 Emacs,一边把这份文档当作纸质书来阅读。(这是我个人喜欢的方式,我偏爱纸质书籍。)如果身边没有正在运行的 Emacs,你依然可以阅读本书,但这种情况下最好把它当作小说或未曾到访过的国家的旅行指南:内容有趣,却终究不如亲身体验。

本文大部分内容会逐步讲解、引导阅读 GNU Emacs 中实际使用的代码。这些讲解有两个目的:第一,让你熟悉真实可用的代码(也就是你日常使用的代码);第二,让你熟悉 Emacs 的工作方式。了解一个实际可用的环境是如何实现的,本身就很有意义。

同时,我也希望你能养成浏览源代码的习惯。你可以从中学习,也可以从中汲取思路。拥有 GNU Emacs,就像拥有了一座藏满宝藏的龙穴。

除了把 Emacs 当作编辑器、把 Emacs Lisp 当作编程语言学习之外,文中的示例与逐步讲解还能帮你熟悉 Emacs 作为 Lisp 编程环境的使用方式。GNU Emacs 为编程提供了丰富支持与实用工具,你会希望熟练使用它们,比如 M-.(用于调用 xref-find-definitions 命令的快捷键)。你还会学习缓冲区以及该环境中的其他对象。熟悉 Emacs 的这些功能,就像熟悉家乡周边的新路线一样。

最后,我希望向你传递一些使用 Emacs 学习未知编程知识的技巧。你常常可以借助 Emacs 理解令你困惑的内容,或是找到实现新功能的方法。这种自主学习的能力不仅带来乐趣,更是一种优势。