Emacs/如何使用 Emacs
许多 Emacs 教程都以一个长长的有用命令和键位列表开头,供你记住。虽然有用,但它可能有点令人不知所措,并分散注意力。此外,其他教程可能已经做得相当不错。
一种学习事物的替代方法是进入一种“学习债务”的形式,学习最少量的知识,以便在你需要执行操作时轻松找到你需要了解的信息。然后 *玩* 你想要学习的工具。至少,这种方法可以非常引人入胜,并且在你经历了一点痛苦之后,完整的教程通常会变得更加有趣。
我们将从 Emacs 工作原理的思维模型开始,这符合它的可扩展性。这种模型与一些 Emacs 的文档命令相结合,可以帮助你开始使用而无需学习太多。
- 你在 Emacs 中执行的大部分工作都是通过一个 *缓冲区* 完成的,这是一个交互式可编辑的文件表示。
- 你在 Emacs 中执行的所有操作都是函数调用,即使是像按下单个键这样的操作。
- 存在一个键映射,它将按键或你按下的按键序列映射(或绑定)到函数调用。
- 其中一些函数调用可能会交互式地请求输入。这可以通过在屏幕底部弹出提示(迷你提示)来完成。
Emacs 旨在成为自文档的。Emacs 相当一致的模型,加上用于查找 Emacs 内部状态的函数,使得找到 Emacs 能做什么以及它是如何做到这一点的非常容易。
你在 Emacs 中执行的所有操作都是通过函数调用完成的。这些函数往往具有描述性名称和良好的文档。因此,通过按名称搜索函数,你可以找到如何执行某些操作。
你可以使用 `describe-function` 命令搜索函数。默认情况下,此函数绑定到 *C-h f*。也就是说,你按下 Control 键,然后在松开它之前按下 h,然后松开 Control 键并按下 *f*。
这会在屏幕底部弹出一个提示,要求你输入函数名称。此时,你可以按下 *<TAB>* 以获取以你迄今为止输入的内容开头的函数列表。
假设你想要弄清楚如何将光标向左移动。如果你按下“C-h f l e f t <TAB> <TAB>”,你会看到以 *left* 开头的两个函数,*left-char* 和 *left-word*。如果你完成输入“left-char”并按下“<ENTER>”,Emacs 会显示 *left-char* 命令的文档。
这将告诉你
- left-char 命令将光标向左移动。
- 不出所料,它绑定到左键。
查找一些函数定义,并调用一些函数。使用“C-h f”键绑定查找你想到的尽可能多的不同函数,直到你感到厌烦。看看你是否能够识别函数名称或它们所具有的键绑定中的模式。特别是,你可能对如何打开文件、打开缓冲区、更改缓冲区、关闭缓冲区和退出 Emacs 感兴趣。
查找函数可能是找到如何执行此操作的好方法,但如果你似乎找不到要查找的函数的名称,它可能很成问题。通常情况下,你所追求的是有用的函数及其键绑定。有人怀疑许多读者已经从互联网上存在的各种 Emacs 教程、备忘单和手册中找到了自己的列表。
可以使 Emacs 本身为你提供这样一个列表。一个这样的有用列表是当前绑定到某个键的所有函数。你可以使用绑定到“C-h f”的 describe-bindings 函数获取它。
学习如何使用编程工具的另一种可能方法是随机按下键,直到发生一些有趣的事情,然后查看键按下到底做了什么。你可以使用绑定到“C-h k”的 describe-key 函数来执行此操作。
一旦你开始玩 Emacs,并积累了足够的挫败感。你可能想要与一些参考或教程文档进行交互,函数 help-with-tutorial “C-h t” 是一个开始的地方。