写在前面的话
C-表示按住ctrl键;M-表示按住 META(或 EDIT 或 ALT);退出Emacs请用 C-x C-c(两个连续的组合键)。
按照教程顺序列出快捷键
1.C-v:下一个屏幕
2.M-v:上一个屏幕
3.C-l:光标当前位置显示在屏幕中央
4.常用的方向键,即:上、下、左、右。分别对应:C-p、C-n、C-b、C-f。“P、N、B、F”分别对应单词: previous(上一行),next(下一行),backward(回退),forward(前进)。如果嫌一个字符一个字符地挪光标太慢,你还可以一个词一个词地跳。M-f 可以将光标往前移动一个词,而 M-b 则是往后移。【这里的“词”指英文单词,对中文来说,则是指移动到下一个标点符号。】
5.请注意 C-f 、C-b 和 M-f 、M-b 两对之间的类比关系。通常的惯例是:META 系列组合键用来操作“由语言定义的单位(比如词、句子、段落)”,而 CONTROL系列组合键用来操作“与语言无关的基本单位(比如字符、行等等)”。类似的惯例在“行”与“句子”之间也同样适用:C-a 和 C-e 可以将光标移动到“一行”的头部和尾部;而 M-a 和 M-e 则将光标移动到“一句”的头部和尾部。
6.这里还要介绍两个重要的光标移动命令:M-< (META 小于号)可以将光标移动到所有文字的最开头;M-> (META 大于号)可以将光标移动到所有文字的最末尾。注意,在大部分键盘上,小于号(<)需要用上档键(Shift)来输入,所以在这些键盘上你应该用 Shift 键来输入 M-<,如果不按 Shift 键,你输入的会是M-comma(META 逗号)。
7.大部分的 Emacs 命令接受数字参数,并且对于多数命令而言,这些数字参数的作用是指定命令的重复次数。举例来说, C-u 8 C-f 会向前移动 8 个字符。而 C-v 和 M-v 则属于另一种类型的例外。当给定一个参数时,它们将滚动你指定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v 将屏幕向下滚动 8 行,而不是 8 屏。
8.如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g
也可以终止一条执行过久的命令。C-g 还可以取消数字参数和只输入到一半的命令。
9.你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你想要移除的区域的一端,然后按 C-@ 或 C-SPC(任一即可,SPC指空格)【注意,C-SPC 往往被中文用户设定成输入法热键,如果这样,C-SPC 就被系统拦截而无法传递给 Emacs 了,因此这里还是推荐使用C-@。】,然后将光标移动到另一端,再按 C-w 就可以把位于这两点之间的所有文字移除了。
10.单独的 C-k 会把一行的内容移除,而第二个 C-k 则会移除换行符。C-y 可以召回最近一次移除的内容,那如何召回前几次移除的内容呢?它们当然没有丢,你可以用 M-y 来召回它们。在用 C-y 召回最近移除的文字之后,紧接着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上一次的……连续使用 M-y 直到找到你想要召回的东西,然后什么也不用做,继续编辑就行了。
11.通常 C-x u 会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用C-x u,你会把以前的命令也依次撤销。
12.C-x C-f 寻找一个文件 C-x C-s 储存这个文件这条命令把 Emacs 中的文字存储到文件中。第一次存盘的时候 Emacs 会将原文件重命名以备份。重命名的规则通常是在原文件名之后添加一个“~”字符。【对许多人来说,这是一个烦人的特性,关掉文件备份可以用如下命令: M-x customize-variable make-backup-files 】
13. C-x C-b 列出缓冲区。 C-x 1 关掉其它所有窗格,只保留一个。输入 C-x b foo以回到文件“foo”的缓冲区。C-x s 保存多个缓冲区。
14. 用命令名扩展的命令通常并不常用,或只用在部分模式下。比如 replace-string
(字符串替换)这个命令,它会在全文范围内把一个字符串替换成另一个。在输
入 M-x 之后,Emacs 会在屏幕底端向你询问并等待你输入命令名。如果你想输入
“replace-string”,其实只需要敲“repl s”就行。
15.如果你已经修改了一个文件,但是还没来得及存盘你的计算机就罢工了,那么你所做的修改就很可能会丢失。为了避免这样的不幸发生,Emacs 会定期将正在编辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个“#”字符,比如你正在编辑的文件叫“hello.c”,那么它的自动保存文件就叫“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保存文件)然后输入 M-x recover file 来恢复你的自动保存文件。在提示确认的时候,输入 yes。
16.编辑自然语言文本应该用 Text 模式。
输入 M-x text mode。
别担心,什么都没变。不过细心一些可以发现,M-f 和 M-b 现在把单引号(’)视为词的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都将单引号视为分隔单词的符号。
17.主模式之所以称之为“主(major)”模式,是因为同时还有“辅模式”(minormode)存在。辅模式并不能替代主模式,而是提供一些辅助的功能。每个辅模式都可以独立地开启和关闭,跟其它辅模式无关,跟主模式也无关。所以你可以不使用辅模式,也可以只使用一个或同时使用多个辅模式。有一个叫做自动折行(Auto Fill)的辅模式很有用,特别是在编辑自然语言文本的时候。启用自动折行后,Emacs 会在你打字超出一行边界时自动替你换行。用 M-x auto fill mode 启动自动折行模式。再用一次这条命令,自动折行模式会被关闭。也就是说,如果自动折行模式没有被开启,这个命令会开启它;如果已经开启了,这个命令会关闭它。所以我们说,这个命令可以用来“开关(toggle)”模式。你必须敲一些空格,因为Auto Fill 只在空白处进行断行。【输入空格对英文来说是必须的,而对中文则不必】
18.C-s 是向前搜索,C-r 是向后搜。【你会发现 C-g 会让光标回到搜索开始的位置,而 则让光标留在搜索结果上,这是很有用的功能。】
19.移动光标到这一行,然后输入 C-u 0 C-l,这样可以将本行置顶。输入 C-x 2,它会将屏幕划分成两个窗格。 C-M-v 滚动下方的窗格。 输入 C-x o(“o”指的是“其它(other)”),将光标转移到下方的窗格。连续使用 C-x o 可以遍历所有窗格。。你可以把这个 C-x 1 命令看成是“只保留一个窗格”,就是我们正在编辑的这个。
20.用下面的方法可以在一个新开窗格里打开文件: 输入 C-x 4 C-f,紧跟着输入一个文件名,再用 结束。
21.离开递归编辑可以用 ESC ESC ESC。这是一个最通用的“离开”命令,你甚至可以使用它来关掉多余的窗格,或者离开小缓冲。
22.如果你连自己到底需要什么帮助都不知道,那么就输入 C-h ?。最基本的帮助功能是 C-h c。输入 C-h c 之后再输入一个组合键,Emacs 会给出这个命令的简要说明。想得到更多的信息,请把 C-h c 换成 C-h k 试试看。
23.还有一些其它有用的 C-h 命令: C-h f 解释一个函数。需要输入函数名。试试看,输入 C-h f previous-line。Emacs 会给出它所知道的所有有关“实现 C-p 命令功能的函数”的信息。
24. C-h a 相关命令搜索(Command Apropos)。
输入一个关键词然后 Emacs 会列出所有命令名中包含此关键词的命令。这些命令全都可以用 M-x 来启动。对于某些命令来说,相关命令搜索还会列出一两个组合键。
25. C-h i 阅读联机手册(也就是通常讲的 Info)。这个命令会打开一个称为“info”的特殊缓冲区,在那里,你可以阅读安装在系统里的软件包使用手册。要读 Emacs 的使用手册,按 m emacs 就可以了。如果你之前从没用 过 Info 系统,那么请按“?”,Emacs 会带你进入 Info 的使用指南。在看完本快速指南之后,Emacs Info 会成为你的主要参考文档。
26. 想学习更多的使用技巧,Emacs 使用手册(manual)值得一读。你可以读纸版的书,也可以看电子版的联机手册(可以从 Help 菜单进入或者按 F10 h r)。提两个你可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自动补全),另一个是方便文件处理的 dired(目录编辑)。Completion 可以替你节省不必要的键盘输入。比如说你想切换到 Message 缓冲区,你就可以用 C-x b *M 来完成。只要 Emacs 能够根据你已经输入的文字确定你想要输入的内容,它就会自动帮你补齐。有关 Completion 的详细说明可以在 Emacs Info 中的“Completion”一节里找到。Dired 能够在一个缓冲区里列出一个目录下的所有文件(可以选择是否也列出子目录),然后你可以在这个文件列表上完成对文件的移动、访问、重命名或删除等等操作。Dired 也在 Emacs Info 中有详细介绍,参见“Dired”一节。Emacs 使用手册里还有许许多多的精彩功能等着你来了解。