Emacs 速查手册

注:

本文是从 Emacs 官方文档 的 help-with-tutorial中文版摘抄而来的速查手册,译者名单见文章末尾

重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。 要退出一个正在运行中的命令,请用 C-g

以下命令在翻页浏览时相当有用:

C-v     向前移动一屏
M-v     向后移动一屏
C-l     重绘屏幕,并将光标所在行置于屏幕的中央
        (注意是 CONTROL-L,不是 CONTROL-1)

基本的光标控制(BASIC CURSOR CONTROL)

                     上一行 C-p
                          :
                          :
    向左移 C-b .... 目前光标位置 .... 向右移 C-f
                          :
                          :
                     下一行 C-n


C-f     向右移动一个字符
C-b     向左移动一个字符

M-f     向右移动一个词【对中文是移动到下一个标点符号】
M-b     向左移动一个词【对中文是移动到上一个标点符号】

C-n     移动到下一行
C-p     移动到上一行

C-a     移动到行首
C-e     移动到行尾

M-a     移动到句首
M-e     移动到句尾

M-<     移动到文件开始
M->     移动到文件结束

注意:在大部分键盘上,小于号(<)需要用上档键(Shift)来输入,所以在这 些键盘上你应该用 Shift 键来输入 M-<,如果不按 Shift 键,你输入的会是 M-comma(META 逗号)。

大部分的 Emacs 命令接受数字参数,并且对于多数命令而言,这些数字参数的 作用是指定命令的重复次数。为一个命令指定数字参数(也就是重复次数)的方 法是:先输入 C-u,然后输入数字作为参数,最后再输入命令。如果你有META (或 EDIT 或 ALT)键,那么还有另一种办法:按住 META 键不放,然后输入数字。 不 过我们还是建议你用 C-u,因为它在任何终端机上都能用。这种数字参数也称为 “前缀参数”,意思是说这个参数是先于使用它的命令而输入的。

举例来说, C-u 8 C-f 会向前移动 8 个字符。

虽然大部分命令把数字参数解释为其重复次数,但是也有些命令例外,它们将数 字参数另做它用。比如有些命令(我们目前还没学到)仅仅将前缀参数作为一个 标志――只要给出有一个前缀参数,不管其值为何,它都会改变命令的功能。

C-vM-v 则属于另一种类型的例外。当给定一个参数时,它们将滚动你指 定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v将文本向下滚动 8 行。

这个命令应该已经将文字向上滚动了 8 行。如果你想将它再次地向下滚动,你 可以给定一个参数然后执行 M-v

如果你正在使用图形界面,比如 X 或者微软的 Windows,那么在 Emacs窗 口的一边应该有一个长方形的区域叫“滚动条”。你可以用鼠标操纵滚动条来滚动 文字。

如果你的鼠标有滚轮的话,你也可以使用滚轮来滚动。

插入与删除(INSERTING AND DELETING)

<DEL>        删除光标前的一个字符
C-d          删除光标后的一个字符

M-<DEL>      移除光标前的一个词
M-d          移除光标后的一个词

C-k          移除从光标到“行尾”间的字符
M-k          移除从光标到“句尾”间的字符

C-y          粘贴上一次(有且只有一次)
M-y  粘贴(一个循环,会往前递归之前移除的内容)

撤销(UNDO)

C-/
C-_
C-x u ##本人测试没有效果

如果你修改了一段文字,又觉得改得不好,可以用 undo 命令进行撤销:C-/。

通常 C-/ 会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用 C-/,你会把以前的命令也依次撤销。

但是有两个例外: 1) 没有改变文字的命令不算(包括光标移动命令和滚动命令) 2) 从键盘输入的字符以组为单位――每组最多 20 个字符――来进行处理。 (这是为了减少你在撤销“插入文字”动作时需要输入 C-/ 的次数)

C-_ 也是撤销命令;它的作用跟 C-/ 一样,但是它比较容易多次输入。在 某些终端上,输入 C-/ 实际上向 Emacs 发送的是 C-_ 。 另外, C-x u 和 C-/ 完全一样,但是按起来有些麻烦。

数字参数对于 C-/ 、 C-_ 和 C-x u 的意义是执行撤销的重复次数。

搜索(SEARCHING)

C-s 向后搜索
C-r 向前搜索

如果 EMACS 失去响应(IF EMACS STOPS RESPONDING)

如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g 也可以终止一条执行过久的命令。

C-g 还可以取消数字参数和只输入到一半的命令。

如果你不小心按了一下 ,你也可以用 C-g 来取消它。 【这个说法似乎有问题,因为按照这个按键顺序输入的应该是 C-M-g。 取消 的正确做法是再连按两次 。】

被禁用的命令(DISABLED COMMANDS)

有一些 Emacs 命令被“禁用”了,以避免初学者在不了解其确切功能的情况下误 用而造成麻烦。

如果你用到了一个被禁用的命令,Emacs 会显示一个提示消息,告诉你这个命令 到底是干什么的,询问你是否要继续,并在得到你的肯定之后再执行这命令。

如果你真的想用这条命令,在 Emacs 询问你的时候应该按空格。一般来说,如 果 你不想用,就按“n”。

>> 试试 C-x C-l (这是一个被禁用的命令)
   然后用 n 来回答询问。

窗格(WINDOWS)

Emacs 可以有多个“窗格”,每个窗格显示不同的文字。后面会介绍怎么对付多个窗 格,现在我们先学会如何关掉多余的窗格。其实也很简单:

C-x 1   只保留一个窗格(也就是关掉其它所有窗格)。

也就是先按 CONTROL-x 然后再按 1。C-x 1 会保留光标所在的窗格,并将其扩大 到整个屏幕,同时关掉所有其它的窗格。

有一系列命令是以 CONTROL-x 开始的,这些命令许多都跟“窗格、文件、缓冲区 【缓冲区(buffer)会在后文详细介绍】”等等诸如此类的东西有关,其中有些 命令可能包含了 2 个、3 个或者 4 个字符。

文件(FILE)

想保存工作成果就要记得存盘,否则一旦退出 Emacs 你编辑的文字就会丢失。 要存盘,就要在编辑前“寻找”到一个存盘文件。(这个过程通常也被称为“访问” 文件。)

寻找到一个文件意味着你可以在 Emacs 里查看这个文件的内容。从许多角度看, 这就等于你在直接编辑这个文件,只是你所做的修改只有在“存盘”的时候才会 被写入文件。也正因为如此,你可以丢弃一个写到一半的文件而不必把这个残缺 文件也保存到计算机上。在存盘的时候,Emacs 会把存盘前的文件重命名保存, 以防你改完之后又想反悔。

寻找文件的命令有一个特点,那就是你必须给出文件名。我们称这个命令“读入 了一个参数”(在这里,这个参数显然就是文件名)。在你输入这条命令之后:

C-x C-f   寻找一个文件

Emacs 会提示你输入文件名。你输入的文件名会出现在屏幕最底端的一行,这一 行被称为小缓冲(minibuffer),在小缓冲里你可以使用通常的 Emacs 编辑命 令来编辑文件名。

在小缓冲里输入文件名(其实输入其它东西也一样)时可以用 C-g 取消。

>> 输入 C-x C-f,然后输入 C-g
   这会关掉小缓冲,同时也会取消使用小缓冲的 C-x C-f 命令。
   当然了,你也没有找任何文件。

用 结束文件名的输入。之后,小缓冲会消失,C-x C-f 将会去寻找你 指定的文件。小缓冲在 C-x C-f 命令结束之后也会消失。

文件被显示在了屏幕上,你可以开始编辑了。存盘用这条命令:

C-x C-s   储存这个文件

这条命令把 Emacs 中的文字存储到文件中。第一次存盘的时候 Emacs 会将原文 件重命名以备份。重命名的规则通常是在原文件名之后添加一个“~”字符。 【对许多人来说,这是一个烦人的特性,关掉文件备份可以用如下命令: M-x customize-variable make-backup-files 】

存盘结束后,Emacs 会显示写入文件的文件名。你最好养成经常存盘的习惯,这 可以减少系统崩溃和死机给你带来的损失(也可参见下面的“自动保存”一节)。

你不但可以寻找一个已有的文件来查看或编辑,还可以寻找一个不存在的文件。 实际上这正是 Emacs 创建新文件的方法:找到不存在的新文件。事实上,只有 在存盘的时候,Emacs 才会真正创建这个文件。而在这之后的一切就跟编辑一个 已有文件没有区别了。

缓冲区(BUFFER)

你可以用 C-x C-f 找到并打开第二个文件,但第一个文件仍然在 Emacs 中。要 切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中 同时打开多个文件。

Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每寻 找到一个文件,Emacs 就在其内部开辟一个缓冲区。用下面的命令可以列出当前 所有的缓冲区:

C-x C-b   列出缓冲区
C-x s   保存多个缓冲区

C-x s 会找出所有已被修改但尚未存盘的缓冲区,然后向你逐个询问:是否需要 存盘?

命令集扩展(EXTENDING THE COMMAND SET)

Emacs 的命令就像天上的星星,数也数不清。把它们都对应到 CONTROL 和 META 组合键上显然是不可能的。Emacs 用扩展(eXtend)命令来解决这个问题,扩展 命令有两种风格:

C-x     字符扩展。  C-x 之后输入另一个字符或者组合键。
M-x     命令名扩展。M-x 之后输入一个命令名。

很多扩展命令都相当有用,虽然与你已经学过的命令比起来,他们可能不那么常 用。我们早已经见过一些扩展命令了,比如用 C-x C-f 寻找文件和用 C-x C-s 保存文件;退出 Emacs 用的 C-x C-c 也是扩展命令。(不用担心退出 Emacs 会给你带来什么损失,Emacs 会在退出之前提醒你存盘的。)

如果你使用图形界面,你不需要任何特殊的命令来切换 Emacs 和其他应用程序。 你可以使用鼠标或者窗口管理器的命令。然而,如果你使用只能同时显示一个应 用程序的文本终端,你需要“挂起” Emacs ,以切换到其他的应用程序。

C-z 可以暂时离开 Emacs――当然,你还可以再回来。在允许 C-z 的系统中,C-z 会把 Emacs“挂起”,也就是说,它会回到 shell但不杀死 Emacs 的进程。在常 用的 shell 中,通常可以用“fg”或者“%emacs”命令再次回到 Emacs 中。

你最好在打算退出登陆的时候再用 C-x C-c。在把 Emacs 当做一个临时的编辑 器的时候(比如被一个邮件处理程序调用),也可以用 C-x C-c 退出。

C-x 的扩展命令有很多,下面列出的是你已经学过的:

C-x C-f         寻找文件。
C-x C-s         保存文件。
C-x C-b         列出缓冲区。
C-x C-c         离开 Emacs。
C-x 1           关掉其它所有窗格,只保留一个。
C-x u           撤销。

用命令名扩展的命令通常并不常用,或只用在部分模式下。比如 replace-string(字符串替换)这个命令,它会把一个字符串替换成另一个。在 输入 M-x 之后,Emacs 会在屏幕底端向你询问并等待你输入命令名。如果你想 输入“replace-string”,其实只需要敲“repl s”就行了,Emacs 会帮你自 动补齐。输入完之后按 提交。

自动保存(AUTO SAVE)

如果你已经修改了一个文件,但是还没来得及存盘你的计算机就罢工了,那么你 所做的修改就很可能会丢失。为了避免这样的不幸发生,Emacs 会定期将正在编 辑的文件写入一个“自动保存”文件中。自动保存文件的文件名的头尾各有一个 “#”字符,比如你正在编辑的文件叫“hello.c”,那么它的自动保存文件就叫 “#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。

所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保 存文件)然后输入 M-x recover file 来恢复你的自动保存文件。在 提示确认的时候,输入 yes。

回显区(ECHO AREA)

如果 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为“回显区” 的地方给你提示。回显区位于屏幕的最下面一行。

状态栏(MODE LINE)

位于回显区正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如:

-:**- TUTORIAL.cn 63% L749 (Fundamental)

状态栏显示了 Emacs 的状态和你正在编辑的文字的一些信息。

你应该知道文件名的意思吧?就是你找到的那个文件嘛。-NN%-- 显示的是光标 在全文中的位置。如果位于文件的开头,那么就显示 --Top-- 而不是 --00%--; 如果位于文件的末尾,就显示 --Bot--。如果文件很小,一屏就足以显示全部内容, 那么状态栏会显示 --All--。

“L” 和其后的数字给出了光标所在行的行号。

最开头的星号(*)表示你已经对文字做过改动。刚刚打开的文件肯定没有被改 动过,所以状态栏上显示的不是星号而是短线(-)。

状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是 Fundamental,就是你现在正在使用的这个。它是一种“主模式”。

Emacs 的主模式林林总总。有用来编辑程序代码的――比如 Lisp 模式;也有用 来编辑各种自然语言文本的――比如 Text 模式。任何情况下只能应用一个主模 式,其名称会显示在状态栏上,也就是现在显示“Fundamental”的地方。

主模式通常会改变一些命令的行为。比方说,不管编辑什么语言的程序代码,你 都可以用一个相同的命令来添加注释。但是在不同的语言中注释的语法往往是不 同的,这时不同的主模式就会用各自不同的语法规则来添加注释。主模式都是可 以用 M-x 启动的扩展命令,M-x fundamental-mode 就可以切换到 Fundamental 模式。

编辑自然语言文本――比如现在――应该用 Text 模式。

>> 输入 M-x text-mode <Return>。

别担心,什么都没变。不过细心一些可以发现,M-f 和 M-b 现在把单引号(') 视为词的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都将单引号 视为分隔单词的符号。

主模式通常都会搞一些类似的小动作,因为很多命令其实完成的是“相同的工 作”,只是在不同环境下会有不同的工作方式而已。【所谓“求同存异”,在 Emacs 里得到了很好的体现】

用 C-h m 可以查看当前主模式的文档。

>> 把光标移动到下一行。
>> 用 C-l C-l 将本行带到屏幕的最上方。
>> 输入 C-h m,看看 Text 模式与 Fundamental 模式有哪些不同。
>> 输入 C-x 1 关掉文档窗格。

主模式之所以称之为“主(major)”模式,是因为同时还有“辅模式”(minor mode)存在。辅模式并不能替代主模式,而是提供一些辅助的功能。每个辅模式 都可以独立地开启和关闭,跟其它辅模式无关,跟主模式也无关。所以你可以不 使用辅模式,也可以只使用一个或同时使用多个辅模式。

有一个叫做自动折行(Auto Fill)的辅模式很有用,特别是在编辑自然语言文 本 的时候。启用自动折行后,Emacs 会在你打字超出一行边界时自动替你换行。

用 M-x auto-fill-mode 启动自动折行模式。再用一次这条命令,自 动折行模式会被关闭。也就是说,如果自动折行模式没有被开启,这个命令会开 启它;如果已经开启了,这个命令会关闭它。所以我们说,这个命令可以用来 “开关(toggle)”模式。

多窗格(MULTIPLE WINDOWS)

Emacs 的迷人之处很多,能够在屏幕上同时显示多个窗格就是其中之一。

>> 移动光标到这一行,然后输入 C-l C-l。

>> 现在输入 C-x 2,它会将屏幕划分成两个窗格。
   这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。

>> 试试用 C-M-v 滚动下方的窗格。
   (如果你并没有 META 键,用 ESC C-v 也可以。)
   【向上滚动是 C-M-S-v,也就是同时按住 CONTROL、META 和 SHIFT 再按 v】

>> 输入 C-x o(“o”指的是“其它(other)”),
   将光标转移到下方的窗格。

>> 在下方的窗格中,用 C-v 和 M-v 来滚动。
   同时继续在上方的窗格里阅读这些指导。

>> 再输入 C-x o 将光标移回到上方的窗格里。
   光标会回到它在上方窗格中原本所在的位置。

连续使用 C-x o 可以遍历所有窗格。“被选中的窗格”,也就是绝大多数的编辑 操作所发生的地方,是在你不打字时闪烁光标的那个窗格。其他的窗格有它们自 己的光标位置; 如果你在图形界面下运行 Emacs ,这些光标是镂空的长方形。

当你在一个窗格中编辑,但用另一个窗格作为参考的时候,C-M-v 是很有用的命 令。无需离开被选中的窗格,你就可以用 C-M-v 命令滚动另外一个窗格中的文 字。【比如翻译和校对就很适合用这种方式进行。】

C-M-v 是一个 CONTROL-META 组合键。如果你有 META (或 Alt)键的话,可以 同时按住CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以, 因为它们只是用来“修饰(modify)”你输入的字符的。

如果你并没有 META 键,你也可以用 ESC 来代替,不过这样的话就要注意按键 顺 序了:你必须先输入 ESC ,然后再输入 CONTROL-v。CONTROL-ESC v 是没用的, 因为 ESC 本身是一个字符键,而不是一个修饰键(modifier key)。

>> (在上方窗格里)输入 C-x 1 关掉下方窗格。

(如果你在下方的窗格里输入 C-x 1,那么就会关掉上方的窗格。你可以把这个 命令看成是“只保留一个窗格”――就是我们正在编辑的这个。)

不同的窗格可以显示不同的缓冲区。如果你在一个窗格里用 C-x C-f 打开了一 个 文件,另一个窗格并不会发生什么变化。任何一个窗格里都可以用来打开文件。

用下面的方法可以在一个新开窗格里打开文件:

>> 输入 C-x 4 C-f,紧跟着输入一个文件名,再用 <Return> 结束。
   可以看到你指定的文件出现在下方的窗格中,同时光标也跳到了那里。

>> 输入 C-x o 回到上方的窗格,然后再用 C-x 1 关掉下方窗格。

多窗口(MULTIPLE FRAMES)

Emacs 可以创建多个窗口。窗口由许多窗格以及菜单、滚动条、回显区等组成。 在图形界面下,多个窗口可以同时显示出来。在文本终端中,只能同时显示一个 窗口。

>> 输入 M-x make-frame <Return>。
 可以看到一个新的窗口出现在了你的屏幕上。

你可以在新的窗口里做最初的窗口里可以做的任何事情。第一个窗口没有什么特 别的。

>> 输入 M-x delete-frame <Return>.
 这个命令将会关闭选中的窗口。

你也可以通过图形系统来关闭某个窗口(通常是在窗口上面的某个角落里的一个 “X”按钮)。如果你关闭的是 Emacs 进程的最后一个窗口, Emacs 将会退出。

递归编辑(RECURSIVE EDITING LEVELS)

有时候你会进入所谓的“递归编辑”。递归编辑状态由位于状态栏的方括号所指 示,其中包含了用小括号来指明的模式名称。比如说,你有时可能会看到 [(Fundamental)],而不是 (Fundamental)。【比如在用 M-% 进行交互式替换的 时候你又用了 C-s 进行搜索,这时替换模式并没有结束,但你又进入了搜索模 式, 这就是所谓的递归编辑。】

离开递归编辑可以用 ESC ESC ESC。这是一个最通用的“离开”命令,你甚至可 以使用它来关掉多余的窗格,或者离开小缓冲。

>> 输入 M-x 进入小缓冲;然后输入 ESC ESC ESC 离开。

你不能用 C-g 退出递归编辑,因为 C-g 的作用是取消“本层递归编辑之内”的 命令和其参数(arguments)。

获得更多帮助(GETTING MORE HELP)

本快速指南的目的仅仅是帮助你在 Emacs 的海洋里下水,不至于束手无策望洋 兴 叹。有关 Emacs 的话题可谓汗牛充栋,这里自然是难尽万一。不过 Emacs 很理 解你求知若渴的心情,因为它提供的强大功能实在是太多了。为此,Emacs 提供 了一些命令来查看 Emacs 的命令文档,这些命令都以 CONTROL-h 开头,这个字 符也因此被称为“帮助(Help)字符”。

要使用帮助(Help)功能,请先输入 C-h,然后再输入一个字符以说明你需要什 么帮助。如果你连自己到底需要什么帮助都不知道,那么就输入 C-h ?,Emacs 会告诉你它能提供了哪些帮助。如果你按了 C-h 又想反悔,可以用 C-g 取消。

(如果你按 C-h 之后没有任何帮助信息显示出来,那么试试 F1 键或者 M-x help 。)

最基本的帮助功能是 C-h c。输入 C-h c 之后再输入一个组合键,Emacs 会给 出 这个命令的简要说明。

>> 输入 C-h c C-p。

显示的消息应该会是这样:

C-p runs the command previous-line

这条消息显示了 C-p 命令对应的函数名。命令的功能由函数完成,所以函数名 本身也可以被看成是最简单的文档――至少对于你已经学过的命令来说,它们的函 数名足以解释它们的功能了。

多字符命令一样可以用 C-h c 来查看。

想得到更多的信息,请把 C-h c 换成 C-h k 试试看。

>> 输入 C-h k C-p。

上面的命令会新打开一个 Emacs 窗格以显示函数的名称及其文档。你读完之后 可 以用 C-x 1 关掉这个帮助窗格。当然你并不需要立即这样做,你完全可以先在 编 辑窗格里做点别的事情,然后再关掉帮助窗格。

还有一些其它有用的 C-h 命令:

C-h f        解释一个函数。需要输入函数名。

举个栗子:

>> 试试看,输入 C-h f previous-line <Return>。
   Emacs 会给出它所知道的所有有关“实现 C-p 命令功能的函数”的信息。
    C-h v 用来显示 Emacs 变量的文档。Emacs 变量可以被用来“定制 Emacs 的行
为”。同样,你需要输入变量的名称。

    C-h a        相关命令搜索(Command Apropos)。
                输入一个关键词然后 Emacs 会列出所有命令名中包含此关键
                词
                的命令。这些命令全都可以用 M-x 来启动。对于某些命令来
                说,
                相关命令搜索还会列出一两个组合键。

Emacs 会在另一个窗格里显示一个 M-x 命令列表,这个列表包含了所有名称中 含 有“file”的命令。你可以看到像“C-x C-f”这样的组合键显示在“find-file” 这样的命令名的旁边。

>> 用 C-M-v 来回滚动 help 窗格,多试几次。

>> 输入 C-x 1 来删除 help 窗格。

   C-h i        阅读手册(也就是通常讲的 Info)。
                这个命令会打开一个称为“*info*”的特殊缓冲区,在那里,
                你可以阅读安装在系统里的软件包使用手册。要读 Emacs 的
                使
                用手册,按 m emacs <Return> 就可以了。如果你之前从没用
                过 Info 系统,那么请按“?”,Emacs 会带你进入 Info 的使
                用指南。在看完本快速指南之后,Emacs Info 会成为你的主
                要
                参考文档。

翻译(TRANSLATION)

翻译:孙一江 sunyijiang@gmail.com 维护:薛富侨 xfq.free@gmail.com 校对:水木社区(www.newsmth.net)Emacs 板众多网友及众多 Emacs 中文用户

下面列出主要术语的译词对照,并给出注释说明:

command               命令
cursor                光标
scrolling             滚动
numeric argument      数字参数
window                窗格 [1]
insert                插入
delete                删除 [2]
kill                  移除 [2]
yank                  召回 [2]
undo                  撤销
file                  文件
buffer                缓冲区
minibuffer            小缓冲
echo area             回显区
mode line             状态栏
search                搜索
incremental search    渐进式搜索 [3]

对于其他没有提到的术语,读者可以参考 Emacs 使用手册里的术语表。

[1] “window”一词在计算机相关的领域一般都被译为“窗口”。但是在 Emacs
    中,还有一个“frame”的概念。在被广泛使用的 X 窗口系统和微软的视窗
    (Windows)系列操作系统中,Emacs 的一个“frame”就是一个“窗口”,因
    此把 Emacs 中的“frame”译成“窗口”更加符合通常的习惯。这样,Emacs
    中的“window”就只能译成“窗格”了。我们认为 Emacs 中 window 和
    frame 的关系用窗格和窗口来类比是十分形象的。

    《学习GNU Emacs》(第二版)一书对“window”和“frame”的翻译与本教程
    刚好相反(分别译作“窗口”和“窗格”)。在此特别注明,以消除可能产生
    的疑惑。(感谢李旭章 <lixuzhang@gmail.com> 指出)

[2] 对于“delete”和“kill”的区别,正文已经给出了详细的说明。“删除”和
    “移除”相比较起来,前者更多地隐含着“破坏”和“不可恢复”的意思,而
    后者更多地隐含着“被转移”和“可恢复”的意思。因此分别选择它们作为上
    述两词的译词,希望能够体现出区别。“yank”在中文文档中鲜有对应译词出
    现,翻译的困难较大。究其本意是:“a strong sudden pull”(参见韦氏词
    典),即“猛然拉回”。在原文档中 yank 被引申为“将先前移除的东西再移
    回来”这个意思,所以我们选择了“召回”一词与其对应。

[3] “incremental”一词在计算机著作中广泛出现,被广泛接受的中文译词有两
    个:“增量的”和“渐进的”。“incremental search”翻译成“增量式搜索
    ”或者“渐进式搜索”都讲得通,且都有各自的形象之处。还是参考原文对其
    的解释:“... means that the search happens while you type in the
    string to search for”。意思是之所以称其为“incremental search”,是
    因为“在你输入搜索字符串的过程中,搜索就已经在进行了”。我们认为“增
    量的”更加强调在现有基础上的变化(比如“增量备份”,“增量编译”);
    而“渐进的”更加强调过程的逐渐发展,也更加符合原文的意思。因此我们选
    择将“incremental search”译作“渐进式搜索”。
By @SunisDown in
Tags : #emacs,