Emacs 命令通常包含有 CONTROL 键(有时候以 CTRL 或 CTL 来标示)或是
META 键(有时候以 EDIT 或 ALT 来标示)。为了避免每一次都要写出其全名,
我们将会使用下述的缩写:
C- 表示当键入字符 时 按住 CONTROL 键。
因此,C-f 就是:按住 CONTROL 键再键入 f 。
M- 表示当键入字符 时 按住 META 或 EDIT 或 ALT 键。
如果没有 META 、 EDIT 或 ALT 键时,则可以用
“按一下 ESC 键然后放开,再键入 的步骤”
来作为替代。我们以 来表示 ESC 键。
重要备忘录:要退出 Emacs 会话( session ),键入 C-x C-c (两个字
符)。位在左侧边界的“”字符是让您可以试著使用的命令的提示。举例来说:
[Middle of page left blank for didactic purposes. Text continues below]
现在键入 C-v ( View next screen )以移到下个屏幕。
(试试看,键入字符 v 时,按住 CONTROL 键)
从现在开始,您应该在每次阅读完目前的屏幕时做一次这个动作。
要注意的是,当您从一个屏幕移到另一个时,中间会有两行重复;这样做是为了
提供一些连续性,让您可以接续地阅读文字。
您需要知道的第一件事是如何在文字中移动。您已经知道了可以 C-v 来向前移
动一个屏幕。要向后移动一个屏幕,则键入 M-v (按住 META 键,然后键入 v
,或是如果您没有 META 、 EDIT 或 ALT 键时键入 v )。
试著键入 M-v 然后 C-v ,连续个几次。
【现在您可以 C-v 命令移到后面“翻译”一节,以取得关于本文的翻译相关事
项;然后以 M-v 命令回到这里。】
* 摘要( SUMMARY )
-------------------
以下的命令在浏览屏幕时相当有用:【我们现在以“屏幕”来表示“显示文件内
容的区域”,因为目前是处在 Emacs 中的单窗格( window )显示状态,如果
是在多窗格的状态下,这里所介绍的命令则作用在“工作中的窗格”。有关于窗
格的介绍,请见窗格( windows )一节。】
C-v 向前移动一个屏幕/窗格
M-v 向后移动一个屏幕/窗格
C-l 清除屏幕/窗格,再重新显示所有文字,
光标所在位置会显示于屏幕/窗格的中央。
(是 CONTROL-L 而不是 CONTROL-1 )
找出光标的位置,并注意其附近的文字为何。然后键入 C-l 。
再次找出光标的位置,确认一下相同的文字现在也位在其附近。
如果您的终端机有 PageUp 与 PageDn 键的话,您也可以使用它们来以屏幕为单
位地移动,但是使用 C-v 和 M-v 会比较有效率。
* 基本的光标控制( BASIC CURSOR CONTROL )
------------------------------------------
屏幕到屏幕的移动是很有用,但是您如何移动到位于屏幕内文字中的特定位置呢?
有几种方式可以进行。您可以使用方向键,但是将您的手放在标准的〔键盘〕位
置,并且使用命令 C-p 、 C-b 、 C-f 和 C-n 将比较有效率。这些字符和四个
方向键〔的功能〕是同等的,如下所示:
前一行 C-p
:
:
向后移 C-b .... 目前光标位置 .... 向前移 C-f
:
:
后一行 C-n
以 C-n 或 C-p 将光标移到图形的中央。
键入 C-l 会看到整个图形显示在屏幕的中央。
您会发现用字母所代表的意义来记忆它们很容易:P 表示 previous 、 N 表示
next 、 B 表示 backward 、而 F 则表示 forward 。您将“总是”用到这些游
标移动命令。
按几次 C-n 把光标往下移动到这行。
按几次 C-f 往前移到这行,然后再以 C-p 往后移动。
看看当光标在本行中央时,C-p 的动作是怎样。
每一个文字行都以一个 Newline 字符作为结束,它用来与下一行相互分开。
在您文件中的最后一行应该要有一个 Newline 来作为结束(但是 Emacs 并不一
定需要它来编辑文件)。
试著在一行开始的地方键入 C-b 。结果应该会移动到前一行的最后面。
这是因为它往后移动时越过了 Newline 字符。
C-f 也可以和 C-b 一样地越过 Newline 字符。【Newline 字符是“不可见
( invisible )字符”,在编辑器中一般看不到它,这里只是告诉您:在行首
再往前走,那么光标会跑到前一行(如果有前一行的话);在行尾再往后走,那
么光标会跑到后一行(如果有后一行的话)。“越过 Newline 字符”会让光标
跑到另外一行。】
多按几次 C-b,自己感觉一下光标在哪。
然后按几次 C-f 回到这行的尾巴。
再按一次 C-f 就可以移到下一行了。
当您移动光标穿越屏幕的上方或下方时,在边界外的文字会移位进入屏幕内。这
称为“卷动”。它让 Emacs 可以将光标移动到文字中的任意特定位置,同时
(光标)不会跑出屏幕外。
试著以 C-n 将光标越过屏幕下方,然后看看发生了什么事。
如果一个字符一个字符地移动太慢的话,您可以一个字一个字地移动。M-f
(META-f) 往前移动一个字,M-b 则往后移动一个字。【对中文来说,则是移动
到下一个或下一个标点符号的所在。】
键入一些 M-f 和 M-b。
当您在一个字的中间时,M-f 会移动到这个字的尾巴。当您在字与字间的空白时,
M-f 会移动到下一个字的尾巴。M-b 的效果相似,只是方向不同。
按几次 M-f 和 M-b,中间夹杂一些 C-f 和 C-b,
这样子您就可以观察 M-f 和 M-b 在各种“位在字间或字符间”
的不同位置,所表现出来的行为。
请注意 C-f 、 C-b 和 M-f 、 M-b 两对之间的相似性。“经常”的状况是:
META 字符是用来作为与“以语言定义出的单位(字、句子、段落)”有关的操
作,而 CONTROL 字符则是作用在“与您所编辑无关的『基本』单位(字符或行
等)”上。
这个相似性在“行与句子”之间也同样适用:C-a 和 C-e 会将光标移动到“一
行”的 开始和结尾处,而M-a 和 M-e 则将光标移动到“一句”的 开始和结尾
处。
试著按两次 C-a,再按两次 C-e。
试著按两次 M-a,再按两次 M-e。
看一下为什么重复的 C-a 命令会没有作用,而重复的 M-a 命令则继续移动到下
一个句子。虽然这并不能说是完全类比,但是其中每个命令的行为看起来都十分
自然。
光标在文字中的位置也可以称作“点位( point )”。简单来说就是:光标表
现出屏幕中“点位”所在的文字位置。
这里是一些简单“光标移动( cursor-moving )操作”的整理,其中也包括了
“字和句”的移动命令:
C-f 往前移动一个字符
C-b 往回移动一个字符
M-f 往前移动一个字【中文是移动到下一个标点符号】
M-b 往回移动一个字【中文是移动到上一个标点符号】
C-n 移动到下一行
C-p 移动到上一行
C-a 移动到行首
C-e 移动到行尾
M-a 移回句首
M-e 移到句尾
练习几次这些命令。这些都是最常使用到的命令。
还有两个重要的光标动作( cursor-motion )命令,M-
移动到文字的最开始,以及M-( META Greater-than ),移动到文字的最后。
在大部份的终端机,“
入。在这些终端机上,您必须使用 shift 键来键入 M-
您就变成键入 M-comma 了。
现在试一下 M-
然后再重复地使用 C-v 回到这里。
现在试一下 M- ,移到本快速指南的最后。
然后再重复地使用 M-v 回到这里。
如果您的终端机有方向键的话,您也可以用方向键移动光标。我们有三个理由建
议您学习 C-b 、 C-f 、 C-n 、 和 C-p :(1) 任何的终端机都能使用。(2)
一旦您使用 Emacs 相当熟练了,您会发现键入这些 CONTROL 字符,比起使用方
向键坑卩了(因为您不需要将手移开打字区)。(3) 一旦您使用这些 CONTROL
字符命令成为习惯,您也可以很容易地学会其他高级的光标动作命令。
大部份的 Emacs 命令接受数字参数;对大部份的命令而言,它的作用是指定重
复次数。您要指定一个命令的重复次数的作法是:先键入 C-u,然后在您键入指
令前,键入代表重复次数的数位。如果您有一个 META(或 EDIT 或 ALT )键,
那么您还有另外一个替代作法来输入数字参数:按住 META 键时打入这数字。我
们建议您学习 C-u 的方法,因为它在任何终端机都可以使用。此一数字参数也
称作为“字首参数”,因为您在这参数所作用到的命令前键入它。
举例来说, C-u 8 C-f 向前移动 8 个字符。
试著以一个数字参数来使用