您正在阅读 Emacs 快速指南Emacs tutorial。请见页尾有关复制条件。
Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation.
Emacs 命令通常包含有 CONTROL 键有时候以 CTRL 或 CTL 来标示或是
META 键有时候以 EDIT 或 ALT 来标示。为了避免每一次都要写出其全名
我们将会使用下述的缩写
C-<chr> 表示当键入字符 <chr> 时 按住 CONTROL 键。 因此C-f 就是按
住 CONTROL 键再键入 f 。
M-<chr> 表示当键入字符 <chr> 时 按住 META 或 EDIT 或 ALT 键。 如果没
有 META 、 EDIT 或 ALT 键时则可以用 「按一下 ESC 键然后放开
再键入 <chr> 的步骤」 来作为替代。我们以 <ESC> 来表示 ESC 键。
重要备忘录要退出 Emacs 会话session键入 C-x C-c 两个字符。
位在左侧边界的「>>」字符是让您可以试著使用的命令的提示。举例来说
<<Blank lines inserted around following line by help-with-tutorial>>
[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 键时键入 <ESC>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-<META Less-than移
动到文字的最开始以及M->META Greater-than移动到文字的最后。
在大部份的终端机「<」是在 comma 上方所以您必须要使用 shift 键来键
入。在这些终端机上您必须使用 shift 键来键入 M-< 没有使用 shift 键
您就变成键入 M-comma 了。
>> 现在试一下 M-< 移到本快速指南的最开始。然后再重复地使用 C-v 回到
这里。
>> 现在试一下 M-> 移到本快速指南的最后。然后再重复地使用 M-v 回到这
里。
如果您的终端机有方向键的话您也可以用方向键移动光标。我们有三个理由建
议您学习 C-b 、 C-f 、 C-n 、 和 C-p 一、任何的终端机都能使用。二、
一旦您使用 Emacs 相当熟练了您会发现键入这些 CONTROL 字符比起使用方
向键快多了因为您不需要将手移开打字区。三、一旦您使用这些 CONTROL
字符命令成为习惯您也可以很容易地学会其它高级的光标动作命令。
大部份的 Emacs 命令接受数字参数对大部份的命令而言它的作用是指定重
复次数。您要指定一个命令的重复次数的作法是先键入 C-u然后在您键入指
令前键入代表重复次数的数位。如果您有一个 META或 EDIT 或 ALT键
那么您还有另外一个替代作法来输入数字参数按住 META 键时打入这数字。我
们建议您学习 C-u 的方法因为它在任何终端机都可以使用。此一数字参数也
称作为「字首参数」因为您在这参数所作用到的命令前键入它。
举例来说 C-u 8 C-f 向前移动 8 个字符。
>> 试著以一个数字参数来使用 C-n 或 C-p只一个命令就将光标移动到这行的
附近。
大部份的命令使用数字参数来作为其重复次数但是其中有些命令则是作为其它
用途。有几个命令目前您尚未学到将它作为旗标 -- 以一个字首参数的型态
出现而不管其值为何它们让这命令做些不一样的事。
C-v 和 M-v 则是另一类的例外。当给定一个参数时它们卷动「所指定的数量
的行以行为单位」而不是以「屏幕」为单位卷动。举例来说C-u 8 C-v
将显示屏幕卷动 8 行。
>> 现在试著键入 C-u 8 C-v。
这命令应该已经将屏幕向上移了 8 行。若您想将它再次地向下卷动您可以在
执行 M-v 时给定一个参数。
如果您正在使用 X 窗口系统在 Emacs 窗口左手侧应该有一个称为「卷动轴」
的长方型区域。您可以用滑鼠在卷动轴按一下来卷动文字。
>> 试著在「卷动轴内反白区域上」压一下中间钮。这应该会将文字卷动到「由
您所按一下滑鼠的地方」所决定的位置。
>> 当按住中间时试著将滑鼠上下移动。您会看到文字随著您移动滑鼠而上下
移动。
* 当 EMACS 发呆时WHEN EMACS IS HUNG
---------------------------------------
如果 Emacs 停止回应您的命令您可以键入 C-g 来安全地停止它。您也可以使
用 C-g 来停止执行过久的命令。
您也可以使用 C-g 来取消数字参数或您不想要完成的命令。
>> 键入 C-u 100 以设定一个 100 的数字参数然后键入 C-g 。现在键入 C-f
。它应该只会移动一个字符因为您已经以 C-g 取消了参数。
如果您已经不小心地键入一个 <ESC>您可以 C-g 来取消它。
* 无效化的命令DISABLED COMMANDS
-----------------------------------
有一些 Emacs 命令被「无效化」了因此初学者不会意外地使用到它们。
如果您键入了某一个无效化的命令Emacs 会显示一个消息说明这个命令是什
么并且询问您是否想要继续然后执行这命令。
如果您真的想要试一下这个命令那么在当 Emacs 询问您时请键入空白。一
般来说如果您不想要执行这个无效化的命令请以『n』来回答它。
>> 键入 C-x C-l 这是个无效化的命令然后键入 n 来回答问题。
* 窗格WINDOWS
-----------------
Emacs 可以有数个窗格每一个显示它自己的文字。我们在稍后会解释如何使用
多重窗格。现在我们想要解释如何除去多余的窗格然后回到基本的单窗格编辑。
它很简单
C-x 1 One window 即除去其它所有的窗格。
那是个 CONTROL-x 后面跟著数字 1 。C-x 1 将含有光标的窗格扩大到整个屏幕。
它将所有其它的窗格除去。
>> 移动光标到本行并且键入 C-u 0 C-l。
>> 键入 CONTROL-h k CONTROL-f 。看看这个窗格在当一个新的窗格出现以显
示有关 CONTROL-f 命令的 文档时它是如何缩小的。
>> 键入 C-x 1 以使文档列表窗格消失。
这个命令并不像您先前所学过的命令那般它包括了两个字符。它是以字符
CONTROL-x 作为开始。有一整个系列的命令是以 CONTROL-x 作为开始它们之
中有许多是与「窗格、文件、暂存区以及相关事物」有关的。这些命令有 2 、3
或 4 个字符长。
* 插入与删除INSERTING AND DELETING
--------------------------------------
如果您想要插入文字把它键入就是了。您可以看到的字符像是 A 、 7 、 *
等被 Emacs 视为文字并且可以直接插入。键入 <Return> carriage-return
键以插入一个 Newline 字符。
您可以键入 <Delback> 以删除您最后键入的字符。<Delback> 是一个键盘键 --
就是您通常在 Emacs 外使用来「删除您最后键入字符」的同一个。一般来说
是个在 <Return> 上方数行的大键通常标示为『Delete』、『Del』或
『Backspace』。
如果在那里有个标示为『Backspace』的大键那么那一个就是您使用来作为
<Delback> 的键了。某个地方可能也会有另一个标示为『Delete』的键但那个
并不是 <Delback> 。
更一般地说 <Delback> 将位於目前光标位置前一个字符加以删除。
>> 现在做 -- 键入一些字符然后键入几次 <Delback> 来删除它们。不要担心
这个文件会被更动您不会影响到原来的快速指南。您现在看到的这一
个是您的个人拷贝。
当一行文字变得比「在窗格中的一行」长时这一行文字会「接续」到第二行窗
格行。这时一个反斜线「/」或如果您使用窗口化的显示则是一个小小弯弯
的箭头会位在其右边界以指出此行接续著。
>> 插入文字一直到您达到右边界然后再继续插入。您会看到一个接续行出
现。
>> 使用 <Delback> 删除一些文字直到此行再次成为一个窗格行。接续行消失
了。
您可以像删除其它字符一样地删除 Newline 字符。将位在两行中的 Newline 字
元删除会让它们合并成为一行。如果合并的结果使这一行太长以致无法符合窗
格的宽度它会以一个接续行来显示。
>> 移动光标到本行的开头并键入 <Delback> 。这会将本行与其前一行结合为一
行。
>> 键入 <Return> 以重新插入您刚才删除的 Newline 字符。
记得大部份的 Emacs 命令都可以给予一个重复计数repeat count这也包
括了文字字符。重复一个文字字符会将它插入数次。
>> 现在就试一下 -- 键入 C-u 8 * 以插入 ********。
您现在已经学到了「键入个什么东西进 Emacs 以及修正错误」的大部份基本方
法。您也可以「以字或行为单位」地删除。这里有份关於「删除操作」的摘要
<Delback> 删除光标所在的 前一个字符
C-d 删除光标所在的 后一个字符
M-<Delback> 删除光标所在的 前一个字
M-d 删除光标所在的 后一个字
C-k 删除从光标所在到「行尾」间的字符
M-k 删除从光标所在到「句尾」间的字符
注意「<Delback> 和 C-d」还有「M-<Delback> 和 M-d」是平行地自 C-f 和M-f
扩充出来的嗯<Delback> 并不是控制字符但是没什么好担心的。 C-k
和 M-k 在某种程度上与 C-e 和 M-e 一样如果把「一行」和「一句」作为类
比的话。
您也可以只以一种方法来删除缓冲区内的任何部份先移动到您想要删除的部份
的一端然后键入 C-@ 或 C-SPC 任一个即可。SPC 指的是 Space Bar
再移到那部份的另一端接著键入 C-w 。这样就会把介於这两个位置间的所
有文字删除。
>> 移动光标到上一段开头的「您」字。
>> 键入 C-SPC 。 Emacs 应该会在屏幕的下方显示一个「Mark set」消息。
>> 移动光标到第二行中的「端」字。
>> 键入 C-w 。这样会把从「您」开始到刚好「端」之前的文字删除。
要注意的是「杀掉killing」和「删除deleting」的不同在於被杀掉的
可以拉回而被删除的则不能。【有点难以理解您可以这么想一、「被杀掉
的」尚存尸骨而「被删除的」则尸骨无存了可见得对电脑资料来说「删除」
比「杀掉」严重多了。二、实际上就算被删除了我们还是有技术可以把它救
回来尤其是文字资料前提是删除后不能进行实体记忆体的格式化动作。但这
对於一般使用者而言是不可能的因此就不考虑这情形了。】重新插入被杀掉的
文字称为「拉回yanking」。一般而言可以移除掉很多文字的命令会把那
些文字储存起来它们设定成您可以将文字拉回而那些只是删除一个字符或
者只是除去空白行或空白的命令则不会储存这些被删除的文字因此您不能将
那文字拉回。
>> 移动光标到一非空白行的开始。然后键入 C-k 杀掉在那一行上的文字。
>> 第二次键入 C-k。您将会看到它杀掉跟在那一行后面的 Newline 字符。
请注意单独的 C-k 会把一行的内容杀掉而第二个 C-k 则会杀掉那一行本身
并且使得所有其它的行向上移动。 C-k 以很特别的方式来处理数字参数它会
杀掉很多行以及它们的内容这不仅仅是重复而已 C-u 2 C-k 会把两行以及
它们的 Newline 字符杀掉如果只是键入 C-k 两次并不会这样。
将被杀掉的文字恢复的动作称为「拉回yanking」。把它想像成您把别人
从您身上夺去的东西猛力地拉回来您可以在您删除文字的地方拉回也可以在
文字的其它地方拉回。您可以拉回数次同样的文字以制作它的数份拷贝。
拉回的命令为 C-y。它会在目前光标的位置重新插入最后杀掉的文字。
>> 试试看键入 C-y 将文字拉回。
如果您连续地做了数次 C-k所有被杀掉的文字都会被储存在一起因此做一次
C-y 就会把所有这些行都拉回来。
>> 现在做一下键入 C-k 数次。
现在要恢复那些杀掉的文字
>> 键入 C-y。然后把光标往下移动个几行再一次键入 C-y。您现在知道如何
复制某些文字了。
如果您有一些文字想要拉回来但是后来您又杀了某些东西那么该怎么做呢
C-y 会把最近杀掉的拉回来但是先前的文字并没有消失您可以用 M-y 来回
到它。当您已经使用 C-y 把最近杀掉的拉回来之后再键入 M-y 来把这些拉回
来的文字替换为先前所杀掉的。一次又一次地键入 M-y 会把先前再先前所杀掉
的文字带回来。当您到了您想找的文字时您不需要做任何事来保存它只要继
续您的编辑把这些已拉回的文字留在那里就好。
如果您 M-y 做了很多次您可能会回到起始点也就是最近杀掉的。
>> 杀掉一行到处绕绕再杀掉另一行。然后用 C-y 将第二次杀掉的那行带回
来。然后再用 M-y它将会被第一次杀掉的那行取代。再做几次 M-y 看看您
会得到什么。不间断地做直到第二个杀掉行回来再做个几次。如果您想
的话您可以试著给 M-y 正的或是负的参数。
* 取消动作UNDO
------------------
如果您对文字做了一些改变后来觉得它是个错误您可以 Undo 命令取消这一
个改变C-x u。
通常 C-x u 会把一个命令所造成的改变取消掉如果您在一行中重复了许多次
C-x u 每一个重复都会取消额外的命令。
但是有两个例外
一、没有改变文字的命令不算这包括了光标移动的命令还有卷轴命令
二、自行键入的字符以一群一群 -- 每群最多 20 个 -- 来进行处理。这是为
了减少您在取消「插入文字动作」所必须键入 C-x u 的次数
>> 以 C-k 将这一行杀掉然后键入 C-x u 后它会再次出现。
C-_ 是另一个取消命令它的作用就和 C-x u 一样但是在一行中它比较容易
键入许多次。 C-_ 的缺点是在某些键盘中不太清楚如何键入它这也是为什么我
们同时提供 C-x u 的原因。在某些终端机您可以按住 CONTROL 再键入 /
来键入 C-_ 。
一个数字参数对 C-_ 或 C-x u 来说是作为重复的次数。
* 文件FILE
--------------
为了使您编辑的文字永久保存您必须把它放到一个文件中。不然当您退出
Emacs 后它就会随之消失。为了把您的文字放在文件中您必须在您键入这些
文字前「找find」文件。这也称之为「拜访visiting」文件
找一个文件表示您可以在 Emacs 中看到文件的内容。从许多方面来看它就像
是您直接编辑那个文件一样。然而直到您「储存」这个文件之前您使用
Emacs 编辑所做出的改变并不会保存下来。这就是为什么当您不想要时您可以
避免留下修改到一半的文件在系统中。即使当您储存了Emacs 也会把原本的文
件以一个不同的名称保留下来若您稍后觉得您的改变是一个错误的话就可以
使用它。
在靠近屏幕的下方您可以看到由破折号开始与结束的一行 -- 通常是以「--:--
TUTORIAL.cn」或其它类似的东西作为开始。这是屏幕的一部分通常用来表示
您正在拜访的文件。现在您正在拜访的文件叫做「TUTORIAL.cn」它是您个
人的拷贝。当您以 Emacs 找出一个文件时那个文件的名字就会出现在那个地
方。
关於寻找文件的命令中有一个很特别的是您必须说出这个您想要的文件名称。
我们说这个命令「从终端机中读进了一个参数」。在这个例子中这参数就是
文件的名称当您键入这个命令后
C-x C-f 找一个文件
Emacs 会要您键入文件名。您所键入的文件名会出现在屏幕的底行。在被用来作
为这种形式的输入时底行被称为小缓冲区minibuffer。您可以使用正常的
Emacs 编辑命令来编辑这个文件名。
当您正在键入文件名时或是任何的小缓冲区输入时您可以用 C-g 这个命
令来取消它。
>> 键入 C-x C-f然后键入 C-g。这会取消小缓冲区并且也会取消使用这个
小缓冲区的 C-x C-f 命令。因此您没有找任何文件。
当您已经键入了这个文件名请键入 <Return> 来结束它。然后 C-x C-f 命令
就会开始运作并且找到您所选择的文件。小缓冲区在当 C-x C-f 命令结束时
就会消失。
过了一会儿文件的内容就会出现在屏幕然后您就可以编辑它的内容。当您想
要您的改变永久保存时键入这个命令
C-x C-s 储存这个文件
这会把在 Emacs 中的文字复制到文件中。当您第一次做这个动作时Emacs 会
将原始的文件重新命名成一个新的名字这样它才不会消失。新的名字通常会加
入「~」到原始文件的名字后面。
当储存结束时Emacs 会把写入文件的名字列出来。您应该经常地进行储存这
样子如果系统崩溃时您就不会损失太多工作。
>> 键入 C-x C-s 以储存本快速指南的您的拷贝。这会把
「Wrote ...TUTORIAL.cn」这个消息显示在屏幕的下方。
注意在某些系统中键入 C-x C-s 将会把屏幕冻结您将看不到从 Emacs 来
的任何输出。这表示操作系统一个称为「流程控制」的「功能」将 C-s 命令拦
截住并且不让它传到 Emacs。要取消屏幕的冻结请键入 C-q。然后到 Emacs
使用手册中看看对於「渐进式搜寻的同时进入Spontaneous Entry to
Incremental Search」这个主题以取得处理这个「功能」的建议。
您可以找出一个已经存在的文件然后观看它或编辑它。您也可以找一个还没有
存在过的文件。这是以 Emacs 建立一个文件的方法找这个文件就从零开始
然后开始插入文字到这个文件中。当您要求「储存」这个文件Emacs 会真的建
立一个文件并把您所插入的文字摆到文件中。从那时候开始您就可以当自己
是在编辑一个已经存在的文件了。
* 缓冲区BUFFER
------------------
如果您以 C-x C-f「找」第二个文件第一个文件仍然存在 Emacs 内。要切换
回它您可以 C-x C-f 再找它一次。依此方式您可以在 Emacs 内开启不少文
件。
>> 以键入 C-x C-f foo <Return> 的方式建立一个名为「foo」的文件。然后插
入一些文字编辑它然后再以 C-x C-s 储存「foo」。最后键入 C-x
C-f TUTORIAL.cn <Return> 回到本快速指南。
Emacs 储存每个文件的文字在一个称为「缓冲区buffer」的物件中。找一个
文件会在 Emacs 内部建立一个缓冲区。想要看目前存在您的 Emacs 的工作中缓
冲区列表键入
C-x C-b 列出缓冲区
>> 现在就试一下 C-x C-b
看看每一个缓冲区是如何命名的它也可能同时拥有一个「储存其内容的文件」
的名称。您在一个 Emacs 窗格所见到的「任何」文字都是某个缓冲区的一部份。
>> 键入 C-x 1 以退出缓冲列表
当您有数个缓冲区时在任何时候其中只有一个是「目前作用的」。而那个就是
您在编辑的缓冲区。如果您想要编辑另一个缓冲区那么您必须「切换」到它。
如果您想要切换到连接到某个文件的缓冲区您可以用 C-x C-f 再次拜访那个
文件。但是有个比较简单的方式使用 C-x b 在这个命令中您必须键入缓
冲区的名称。
>> 键入 C-x b foo <Return> 以回到含有文件「foo」的文字的缓冲区。然后建
入 C-x b TUTORIAL <Return> 以回到本快速指南。
就大部份的情况来说缓冲区的名称与文件的名称是相同的除去了文件名中的
目录部份。然而并不总是如此。您以 C-x C-b 所制作出的缓冲区列表总是会
显示给您每一个缓冲区的名称。
您在一个 Emacs 窗格中所见到的「任何」文字总是某个缓冲区的一部份。有一
些缓冲区并没有连接到文件。举例来说命名为「*Buffer List*」的缓冲区并
没有任何文件。它是包含有您以 C-x C-b 命令所制作出来的缓冲区列表的缓冲
区。命名为「*Messages*」的缓冲区也没有连接到任何文件它在您的 Emacs
会话中包含出现在底行的消息。
>> 键入 C-x b *Messages* <Return> 来看看消息的缓冲区。然后键入 C-x b
TUTORIAL <Return> 回到本快速指南。
如果您对文件中的文字做了修改然后找另一文件这个动作并不会储存第一个
文件。它的修改仍旧存在 Emacs 中也就是在那个文件的缓冲区中。对於第二
个文件的建立或编辑并不会影响到第一个文件的缓冲区。这样子非常有用但这
个情形也表明了您需要「一个方便的方法」来储存第一个文件的缓冲区。只是为
储存第一个文件就必须以 C-x C-f 切换缓冲区才能以 C-x C-s 将它储存总
是个让人讨厌的过程。因此我们有
C-x s 储存一些缓冲区
C-x s 会询问您关於您已做出修改但还没储存的每一个缓冲区。它会问您对於
每一个这样的缓冲区是否要储存
>> 插入一行文字然后键入 C-x s 。它应该会问您是否要储存名为
TUTORIAL.cn 的缓冲区。键入『y』以回答要储存。
* 扩充命令集EXTENDING THE COMMAND SET
-----------------------------------------
由於 Emacs 拥有太多命令即便使用上所有的 CONTROL 和 META 字符也没办
法完全摆上。Emacs 以 X扩充『eXtend』命令来解决这个问题。扩充命令有
两种型式
C-x 字符扩充。后面跟著一个字符。
M-x 有名称的命令扩充。后面跟著一个长的名称。
还有一些命令通常来说是很有用的但是比您已经学到的命令较少使用。您已经
看过其中两个文件命令中的 C-x C-f 去寻找以及 C-x C-s 去储存。其它的
例子则有结束 Emacs 会话的命令 -- 这个命令是 C-x C-c。不要担心您会失
去已经做出的改变C-x C-c 在它杀掉 Emacs 之前会提供储存每一个变动的文
件的机会。
C-z 是 *暂时* 退出 Emacs 的命令 -- 因此您稍后可以回到同样的 Emacs 会话。
在某些允许它的作用的系统中 C-z 会「暂停住suspends」Emacs也就是
说它会回到 shell 但不会把 Emacs 毁掉。在最常用的 shell 中您可以用
『fg』或『%emacs』两种命令恢复 Emacs。
在没有提供暂停功能的系统中C-z 会在 Emacs 底下建立一个 subshell 以让
您有机会执行其它的程序并且在稍后回到 Emacs它并没有真的退出 Emacs。
在这个例子中shell 命令『exit』是从 subshell 回到 Emacs 的通常方式。
使用 C-x C-c 的时机是当您打算要登出时。它也非常适合用来退出被其它邮件
处理程序以及许多不同的应用程序所启动的 Emacs。然而在一般的状况下如
果您不打算登出最好是把 Emacs 暂停而不是退出它。
有许多 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 取消动作。
以扩充来命名的命令通常是不太常使用的命令或是只在特定的模式下才会使用
的命令。一个例子是取代字串命令它会全域地将一个字串以另一个来取代。当
您键入 M-x 时Emacs 会在屏幕的底端询问您然后您也应该键入这个命令的
名称。在这个例子中是『replace-string』只要键入『repl s<TAB>』然后
Emacs 将会补齐这个名称。以 <Return> 来结束这个命令名称。
取代字串命令需要两个参数 -- 被取代的字串以及用来取代它的字串。您必须以
Newline 字符来结束每一个参数。
>> 将光标移到本行的下两行空白然后键入
M-x repl s<Return>changed<Return>altered<Return>。
请注意这一行是怎么改变的在光标的起始位置之后您已经将 c-h-a-n-g-e-d
这个字 -- 不管它在哪里出现 -- 以「altered」这个字来取代了。
* 自动存文件AUTO SAVE
-----------------------
当您在一个文件中做了修改但是还没有将它们储存起来那么如果您的电脑当
机它们将有可能遗失。为了避免这种情形发生在您的身上Emacs 会定期地将
您正在编辑的文件写入「自动储存」文件中。自动储存文件在文件名的前后会各
有一个 # 符号举例来说如果您的文件名为「hello.c」那么它的自动储存
文件的文件名就是「#hello.c#」。当您以平常的方式储存文件时Emacs 就会
把它的自动储存文件删除。
如果崩溃您可以经由正常地寻找文件指的是您在编辑的文件而不是自动储
存文件然后键入 M-x recover file<Return> 来恢复您的自动储存文件。当它
要求确认时键入 yes<Return> 以继续并恢复自动储存的资料。
* 回应区ECHO AREA
---------------------
如果 Emacs 见到您很慢地键入多字符命令它会将它们显示在位於窗格下方
称为「回应区」的区域给您参阅。回应区位在窗格的最后一行。
* 状态行MODE LINE
---------------------
位在回应区的正上面是称为「状态行」的一行。状态行显示出一些信息如
--:** TUTORIAL.cn (Fundamental)--L670--58%----------------
本行提供一些关於「Emacs 的状态」以及「您正在编辑的文字」的有用信息。
您已经知道文件名的意义是什么了 -- 就是您找的文件。-NN%-- 指出目前您在
文字文件中的位置它的意思是说有 NN 百分比的文字位在窗格的上面。如果
文件的顶端就位在窗格中那么它就会显示 --Top-- 而不是 --00%--。如果文
件的底部就位在窗格中那么它是显示 --Bot--。如果您正在看的文字文件很小
在窗格中就足以看到全部的内容那么状态行就会显示 --All--。
L 和数字以另一种方式来表示出位置它们给出了目前所在的行数Line。
在靠近前面的星号表示您已经对这些文字做了改变。在您刚拜访或储存一个文件
之后状态行的那个部分会没有星号只有破折号。
状态行中位於小括弧里面的部分是用来告诉您正在使用什么编辑模式。默认的
模式是 Fundamental也就是您现在使用的。它是「主模式」的一个例子。
Emacs 有许多不同的主模式。它们之中有一些是用来编辑不同的语言以及或不
同种类的文字像是 Lisp 模式、 Text 模式等等。在任何的时间只有一个主模
式可以作用并且它的名称总可以在状态行中被找到就在现在的
「Fundamental」中的位置。
每一个主模式都使得一些命令的行为表现得不太一样。举例来说在一个程序中
有一些命令用来制作出备注而由於每一种程序语言对於一个备注应该长得像什
么都有著不同的想法因此每一个主模式都必须以不同的方式来插入备注。每
一个主模式是一个延伸命令的名称使得您可以用来切换至那个模式。举例来说
M-x fundamental-mode 就是切换到 Fundamental 模式的一个命令。
如果您想要编辑人类语言的文字文件 -- 像是现在的这一个您应该使用 Text
模式。
>> 键入 M-x text mode<Return>。
不要担心没有任何一个您已经学过的 Emacs 命令会被改变成任何非常不同
的形式。但是您可以发现到 M-f 和 M-b 现在把撇号'视为字的一部分。先
前在 Fundamental 模式中M-f 和 M-b 将撇号视为字的分隔符号。
主模式通常会像上述那个例子一样做出一些精巧的改变大部分的命令在每一
个主模式中「做同样的事」但是它们以一点点不同的方式来工作。
【接续上面所开的头举程序语言的备注来说。同样一个插入备注的动作〈以
M-; 命令插入〉会因为您使用的程序语言主模式的不同而不同。若您使用 C
语言 Emacs 插入『/* _*/』并将光标置於其中开始备注若您使用的是
Fortran 语言Emacs 插入『C _』因为它以字符 C 开头作为备注行若您使
用的是 Perl 语言Emacs 则插入『# _』因为它以井字号开头作为备注文字。
其中「_」指的是插入备注后的瞬间光标所在的位置。编辑器的弹性如此实
在没有必要为了不同的语言、目的或外观设计特殊化的编辑器。「求大同存
小异」在这里也是成立的。】
要浏览您现在所处的主模式的文档键入 C-h m。
>> 使用 C-u C-v 一或数次将本行带到靠近屏幕的上方。
>> 键入 C-h m看看 Text 模式与 Fundamental 模式是哪里不同。
>> 键入 C-x 1 将文档从屏幕移除掉。
主模式之所以称为「主要major」的原因是因为它们也有次模式minor
mode。次要的模式并不是主模式的其它选择而只是次要的更改。每一个次模
式可以被它本身启用或停止和所有其它的次模式无关并且也和您的主模式无
关。所以您可以不使用次模式或一个或任何数量的次模式的组合。
有一个叫做 Auto Fill 模式的次模式非常有用特别是在编辑人类语言的文字
时。当这个模式启用时 Emacs 在当您插入文字并且使一行太宽时会将那一
行在字与字之间自动地分隔开。
您可以 M-x auto fill mode<Return> 来将 Auto Fill 模式启用。当这个模式
启用时您可以使用 M-x auto fill mode<Return> 来将它取消。当这个模式不
用时则这个命令会将它启动而当这个模式启用时这个命令会将它关闭。我
们说这个命令用来「切换toggle」模式。
>> 现在键入 M-x auto fill mode<Return>。然后一再地插入字串「 asdf 」
直到您看到它分成两行。您必须在它们之间摆上空白因为 Auto Fill 只在
空白处断行。
边界通常被设定为 70 个字符但是您可以用 C-x f 命令来改变它。您应该以
一个数字参数的方式来给定您所希望的边界设定。
>> 键入 C-x f 并附上引数 20 『C-u 2 0 C-x f』。然后键入一些文字看
看 Emacs 以 20 个字符在行与行之间进行 fill 动作。然后再用一次 C-x
f 将边界设回 70 。
如果您在一个段落的中间做出改变 Auto Fill 模式并不会为您重新进行 fill
的动作re-fill。要 re-fill 这个段落键入 M-q (META-q)而光标必须
处在其中。
>> 移动光标到前一段中然后键入 M-q 。
* 搜寻SEARCHING
-------------------
Emacs 可以搜寻字串字串可以是一群连续的字符或字【就中文来说字符和
字基本上意义相同此处所指的『字』是英文中没有被空白隔开的字符集
合。】往前或往回搜寻都可以。搜寻一个字串是一种光标移动命令它会将游
标移动到字串出现的下一个地方。
Emacs 搜寻命令与大部分编辑器的搜寻命令不同的地方在於它是「渐进的
incremental」。这表示搜寻发生在您键入想要搜寻的文字串后。
要开始搜寻的命令是 C-s 往前搜寻C-r 往回搜寻。但先等一下现在先不
要试。
当您键入 C-s 时会发现到有一个字串「I-search」出现在回应区中作为提示。
它告诉您 Emacs 现在正处於称为「渐进式搜寻」的状态中等待您键入您想要
搜寻的字串。<Return> 会结束一个搜寻。
>> 现在键入 C-s 开始一个搜寻。慢一点一次键入一个字符键入『cursor』
这个字每键入一个字符时稍微停一下注意看看光标发生了什么事。现
在您已曾经搜寻过「cursor」这个字了。
>> 再次键入 C-s 来搜寻「cursor」的下一个出现位置。
>> 现在键入 <Delback> 四次看看光标是如何移动的。
>> 键入 <Return> 结束搜寻。
您有没有看到发生了什么在一个渐进式搜寻中Emacs 试著要走到您键入的字
串的下一个出现位置。要移动到光标所在的下一个出现位置只要再键入 C-s
一次。如果并没有这样的出现位置存在Emacs 会哔一声并告诉您目前的搜寻
「失败」。另外 C-g 也可以用来结束搜寻。
注意在某些系统中键入 C-s 将会把屏幕冻结您将看不到从 Emacs 来的任
何输出。这表示操作系统一个称为「流程控制」的「功能」将 C-s 命令拦截住
并且不让它传到 Emacs。要取消屏幕的冻结请键入 C-q。然后到 Emacs 使用
手册中看看对於「渐进式搜寻的同时进入Spontaneous Entry to Incremental
Search」这个主题以取得处理这个「功能」的建议。
如果您在一个渐进式搜寻的中间并且键入 <Delback>您可以发现在搜寻字串
中的最后一个字符被消除了并且搜寻会回到这个搜寻的最后一个地方。举例来
说假设您已经键入了『c』用来寻找「c」的第一次出现。现在如果您键入
『u』光标会移动到「cu」的第一次出现位置。现在键入 <Delback> 这会将
「u」从搜寻字串中消除并且光标会移回到「c」的第一次出现位置。
如果您在一个搜寻的中间并且键入一个 CONTROL 或 META 字符的话但有
一些例外 -- 对搜寻而言特别的字符像是 C-s 和 C-r搜寻会被结束。
C-s 会开始一个搜寻它会寻找搜寻字串在目前光标位置「之后」的任何出现
位置。如果您想要在先前文字中搜寻键入 C-r 作为替代。除了搜寻的方向相
反之外我们所说的有关 C-s 的所有事情同样地可以应用到 C-r 上。
* 多重窗格MULTIPLE WINDOWS
------------------------------
Emacs 许多好功能的其中之一是您可以在屏幕中同时展示超过一个窗格。
>> 移动光标到这一行并且键入 C-u 0 C-l 。
>> 现在键入 C-x 2 它会将屏幕平分成两个窗格。这两个窗格都显示著这个快
速指南。光标则停留在上方的窗格。
>> 键入 C-M-v 以卷动下方的窗格。如果您并没有一个真的 META 键则键入
ESC C-v 亦可。
>> 键入 C-x o『o』指的是其它『other』的意思将光标移动到下方的窗
格。
>> 在下方的窗格中使用 C-v 和 M-v 来卷动它。继续维持在上方的窗格中阅
读这些指引。
>> 再一次键入 C-x o 将光标移回到上方的窗格。光标会回到它在上方窗格中
原本所在的位置。
您可以持续使用 C-x o 在窗格之间切换。每一个窗格有它自己的光标位置但
是只有一个窗格会真的显示出光标。所有通常的编辑命令只会应用到那个光标所
在的窗格。我们称这个为「被选择的窗格」。
命令 C-M-v 在当您於一个窗格中编辑文字并使用其它的窗格作为参考之用时
是非常有用的。您可以将光标一直保持在您正在编辑的窗格中并以 C-M-v 指
令在其它的窗格循序地前进。【验证工作特别适合以这种方式来进行如 GNU
中译小组的作法找一个原始英文文件再找它翻译好的中文文件编辑这个
「被选择的窗格」以 C-M-v 命令跟上验证中的段落…。】
C-M-v 是 CONTROL-META 字符的一个例子。如果您有一个真的 META 键您可以
同时按住 CONTROL 和 META 再键入 v 来键入 C-M-v。CONTROL 或 META 「谁先
被按住」并没有影响因为这两个键都是用来修饰您所键入的字符。
如果您并没有一个真的 META 键您可以使用 ESC 来作为替代这样子顺序就
有关系了您必须键入 ESC 跟著键入 CONTROL-vCONTROL-ESC v 并不会作
用。这是因为 ESC 是一个具有本身作用的字符而不是一个修饰键。
>> 在上方窗格键入 C-x 1 以除去下方窗格。
如果您已经在底端的窗格键入 C-x 1那么将会把上面的窗格隐藏住。将这个
命令想像成「只保留一个窗格 -- 我正在编辑的这个。」
您不需要在两个不同的窗格中显示相同的缓冲区。如果您使用 C-x C-f 在一个
窗格中找文件另一个窗格并不因而改变。您可以在独立的任一个窗格中找〔它
自己的〕一个文件。
这里有另外一个方式可以用来使用两个窗格显示两个不同的东西
>> 键入 C-x 4 C-f后面跟著您的其中一个文件的名称。以 <Return> 作为结
束。看看指定的文件出现在下方的窗格。光标也跑到那里。
>> 键入 C-x o 以回到上方的窗格然后以 C-x 1 删除掉下方窗格。
* 递归编辑阶层RECURSIVE EDITING LEVELS
------------------------------------------
有时候您会进入所谓的「递归编辑阶层」。它是由位在状态行的方括弧所指明
并且包含住以小括弧来指明的模式名称。举例来说您可能会看到
[(Fundamental)]而不是 (Fundamental)。
要退出递归编辑阶层请键入 ESC ESC ESC。这是个全功能的「退出」命令。您
也可以使用它来除去多余的窗格并且退出小缓冲区。
>> 键入 M-x 以进入小缓冲区然后键入 ESC ESC ESC 退出。
您无法使用 C-g 来退出递归编辑阶层。这是因为 C-g 是用来取消命令以及「位
於」递归编辑阶层中的「引数arguments」之故。
* 取得更多的帮助GETTING MORE HELP
-------------------------------------
在本快速指南中我们试著仅提供刚刚好的信息让您可以开始使用 Emacs。在
Emacs 中有太多可取得的信息想要在这里全部解释是不可能的。然而您也许
会想要学习更多 Emacs 相关的信息因为它有许多其它有用的功能。Emacs 提
供了「阅读有关 Emacs 命令」的命令。这些「help」命令都以 CONTROL-h 这个
字符作为开头称作为「Help 字符」。
要使用 Help 功能键入 C-h 字符然后再键入一个说明您所需要的帮助的字
元。如果您真的不知道要问什么那么请键入『C-h ?』此时 Emacs 将会告诉
您它能够提供的帮助。如果您已经键入 C-h 但发现您并不需要任何帮助键
入C-g 来取消掉它就是了。
有些网站将 C-h 这个字符的意义改变了。他们真的不应该把它设为对所有使
用者全部都适用的方法所以您现在就有了个理由来抱怨系统管理者了。在此同
时如果 C-h 并没有在窗格的底部显示任何有关帮助的消息试著键入 F1 键
或是 M-x help <Return> 。
最基本的 HELP 功能是 C-h c 。键入 C-h 字符 c 以及一个或一串字符
然后 Emacs 会显示一个非常简短的有关这个命令的解释。
>> 键入 C-h c C-p。
消息应该会像是这样
C-p runs the command previous-line
这告诉了您「函数的名称」。函数名称主要是用来定制以及扩充 Emacs。但是由
於函数名称是由「用来指出这命令在做些什么」而被选定它们因此也可以作为
非常简短的文档 -- 足够提醒您已经学过的命令。
多字符命令像是 C-x C-s 和 如果您没有 META 或 EDIT 或 ALT 键<ESC>v
也可以在 C-h c 后面出现。
要取得更多有关一个命令的信息用 C-h k 来取代使用 C-h c 。
>> 键入 C-h k C-p。
这会在一个 Emacs 窗格显示这个函数的说明文档以及它的名称。当您阅读完后
键入 C-x 1 以跳离这些帮助文字。您并不需要马上跟著做。您可以做些编辑
当参考到帮助文字时再键入 C-x 1 。
这里有一些其它有用的 C-h 选项
C-h f 解释一个函数。您要键入此函数的名称。
>> 试著键入 C-h f previous-line<Return>。这会印出 Emacs 所有的有关「实
作出 C-p 这个命令的函数」的信息
C-h v 这个类似的命令会显示出「您可以用来定制 Emacs 行为的变数」的文档。
当 Emacs 要求时您需要键入这变数的名称。
C-h a 命令相关查找Command Apropos。
键入一个关键字然后 Emacs 会列出所有「在其名称中含有此
关键字」的全部命令。这些命令全部都可以经由 META-x 来启
动。对於一些命令而言命令相关查找也会列出「可以执行相
同命令」的一个或两个字符的串列。
>> 键入 C-h a file<Return>。
这会在另一个窗格显示一个「在其名称中含有『file』的全部 M-x 命令」的列
表。您将会看到像是 C-x C-f 的「字符-命令」列在其相对应命令名称如
find-file的旁边。
>> 键入 C-M-v 上下移动 help 窗格。试个几次。
>> 键入 C-x 1 来删除 help 窗格。
C-h i 阅读在线使用手册a.k.a. Info。
这个命令将您带到了称为「*info*」的特殊缓冲区在那您
可以阅读安装在您的系统里的软件包的在线使用手册。键入
m emacs <Return> 以阅读 Emacs 使用手册。如果您在此之前
未曾使用过 Info 系统请键入『?』。 Emacs 将会带您进入
Info 模式功能的导览指南。一旦完成了本快速指南的研读
您应该查阅 Emacs Info 使用手册以作为主要的参考文档。
* 更多功能特色MORE FEATURES
-------------------------------
您可以经由阅读 Emacs 使用手册〈不论是一本书或是在 Info 中的在线版本
使用 Help 选单或是键入 F10 h r〉来学到更多有关它的知识。有两个您可
能会特别喜欢的功能特色是可以节省打字量的 completion 还有简化文件处理的
dired 。
Completion 是一种避免不必要的打字的方式。举例来说如果您想要切换
*Messages* 缓冲区您可以键入 C-x b *M<Tab> 只要可以从您已经键入的文
字中确定 Emacs 就会将剩下的缓冲区名称补齐。 Completion 是在 Emacs 使
用手册的 Info 中称为「Completion」的节点中所解释的。
Dired 使您可以在一个目录中列出文件次目录则是可选的、在列表中到处移
动、拜访、重新命名、删除以及对文件作操作。 Dired 是在 Emacs 使用手册的
Info 中称为「Dired」的节点中所解释的。
使用手册也解释了许多其它 Emacs 的功能特色。
* 结论CONCLUSION
--------------------
记住要完全退出 Emacs 请使用 C-x C-c 。要暂时退出到 shell 稍后再回
到Emacs 请使用 C-z 。
本快速指南对於所有的新手应该都是易於理解的所以如果您发现了什么地方不
清楚不要只是坐著怪自己 -- 向本文作者和翻译发点牢骚吧
* 翻译TRANSLATION
---------------------
本快速指南的翻译人员列表如下如果您在阅读本文之前「完全」对 Emacs
没有概念请告诉我们您的意见以作为本文后续的改进依据。翻译也提供了一份
《GNU Emacs 中文处理说明》在
<http://www.gnu.org/software/chinese/guide/emacs-chinese.cn.html> 〈部
份内容已经整理到本快速指南〉也请您自行参阅。
编辑器是电脑使用者最常接触到的应用程序因此不应该让初学者感到过於困难
就一般的评论来说 Emacs 是不难学会使用的编辑器但您的意见可以使它更
为贴近一般的使用者并使电脑作为工具的角色得以充分发挥。如果您愿意提供
改进的意见请寄 email 到<[email protected]> 。请不要害羞
我们欢迎任何有关的讨论如果您不想寄到邮寄清单请直接 email 给本文翻
译 <[email protected]> 。请在 Title 行中包含此字串「Emacs TUTORIAL: <your
issue here>」。
如果您是 Emacs 爱好者GNU Chinese Translators Team (GNU/CTT)
<http://www.gnu.org/software/chinese/> 欢迎您的加入我们现在正需要愿
意投入翻译 Emacs 使用手册的人员。
本快速指南并没有采用习惯上编辑器所使用的翻译术语一方面因为它的实际意
义与一般的编辑器不同原文本就不同另一方面也因为 Emacs 所采用的视觉
设计概念早在窗口化系统之前就已经存在本质也不相同。总之翻译以为这
样可以帮助对於 Emacs 整个设计哲学的理解。如果收到的回覆中大部份要求
提出修改我们还是从善如流。
一、为了避免「光标移动命令」论述上的混淆本文采用的术语为往「前」移
move Forward往「回」移move Backward〈不建议使用往「后」移
因为事实上它是向文件开头而不是向文件结尾移动〉往「上」移Previous
line往「下」移Next line。
二、在本文中「行」指的是 row这是采用一般的习惯用法。为了避免误导中
文读者特别在此说明。在正式的用法中「column」翻译为「行」以「纵」
为行直行也译为「栏」「row」翻译为「列」以「横」为列横列。
读者思索一下「合纵连横」应该可以理解。大约是因为中文原本是直书的我们
说「一行字」是没问题但现在大部份的情形中文是横书的由於习惯使然也称
为一行字了。
三、有关於「文字」及其集合的相关译文翻译所采用的有编辑的「文字」
「然后键入一些文字」用来作为说明功能的「文档」「这个函数的说明文
档」特指其所说明的内容的「文本」「实际效力以英文本为准」。即使只是
「一行字」只要它是用来作为说明之用翻译还是将它视为「文档」。
四、「cut」的动作在 Emacs 中分为「杀掉」和「删除」之间的差异如下一
般编辑器中的「cut」只有最近被 cut 的文字摆到 clipboard 中「杀掉
killing」被杀掉的文字全部被加入到 kill ring 中「删除
deleting」被删除的文字就是被删除了。因此在一般编辑器中您只能
paste「最近」被 cut 的文字而在 Emacs 中您可以「拉回」任何先前被杀
掉的文字同时它的作法很容易。至於被删除的因为用来作为「删除」功能
的命令所能移去的文字数量都很少因此也没什么好拉回的如果真的想恢复
这些文字undo 您的动作就是了。
五、「window」同时翻译为「窗口」和「窗格」前者表示现在一般概念中的视
窗系统如「X 窗口」后者表示 Emacs 中的窗口翻译在此通称为「窗格」。
Emacs 的「窗格」即使在命令列提示下也可以正常工作此一基本特性显然值得
我们以另一个专用术语来描述它。
六、关於文件的术语「找」一个文件在 Emacs 中有两种作用找一个「并不
存在」的文件读者应认知为「开新文件」找一个「已经存在」的文件则是
「开启旧文件」。 Emacs 只以一个「找」的动作来解决主要的原因是「实际上」
的软件工作如此。黑客们应该会发现这样比较自然因为它反应了电脑的工作方
式同时操作起来也较少废话。
七、在【】中的文字为翻译的备注。
八、关於使中文文档结构化的议题问题已经获得解决。
九、本翻译文本所采用的简繁用语差异列表如下
cn zh
文档 文件 document[ation]
文件 档案 file
高级 进阶 advanced
字符 字元 character
命令 指令 command
备注 注解 comment
崩溃 当机 crash
光标 游标 cursor
定制 自订 customize
默认 预设 default
退出 离开 exit
黑客 骇客 hacker
信息 资讯 info[mation]
消息 讯息 message
在线 线上 on-line
操作 作业 operat[e/ing]
包 套件 package
程序 程式 program
递归 递回 recursive
屏幕 萤幕 screen
会话 阶段 session
软件 软体 software
窗口 视窗 window[s]
另外我们也十分欢迎读者可以直接修改本快速指南做出自己的版本以自己
认为最为合适的方式来介绍 Emacs 。如果您做出了这样个人化的版本并且认
为足供大家参考使用请寄给 <[email protected]> 我们会将您
的版本公开在 GNU/CTT 的网页中提供给中文使用者下载。
翻译刘 昭宏 <[email protected]>
验证马 雪萍、刘 松鹤 <http://i18n.linux.net.cn>
* 复制COPYING
-----------------
本快速指南沿袭自具有悠久历史的 Emacs 快速指南由 Stuart Cracraft 为了
原始的 Emacs 所撰写的版本开始。
这个版本的快速指南和 GNU Emacs 一样都是版权化的并且允许在某些条件下
散布其拷贝
Copyright (c) 1985, 1996, 1998, 2001, 2002 Free Software Foundation
Chinese Translation by Chao-Hong Liu (2002, 2003)
Permission is granted to anyone to make or distribute verbatim
copies of this document as received, in any medium, provided that
the copyright notice and permission notice are preserved, and that
the distributor grants the recipient permission for further
redistribution as permitted by this notice.
本文允许在不变更文档内容的前提下刊登在任何形式的媒体中但需保留版
权声明以及许可声明散布者也必须给予接受者如同此声明所允许的进
一步散布的许可。【本段译文提供读者作为参考以帮助理解实际效力以英
文本为准。】
Permission is granted to distribute modified versions of this
document, or of portions of it, under the above conditions,
provided also that they carry prominent notices stating who last
altered them.
本文允许在与上述相同的条件下散布修改后的版本或是其中的一部份
但它们也必须带有显著的说明由谁最后更动了它的声明。【Copyleft 版权
除了提供使用者自由外也维护原始作者以及后来的修改作者的名誉权
credit。本段译文提供读者作为参考以帮助理解实际效力以英文本为
准。】
复制 Emacs 本身的条件较为复杂但是具有相同的精神。请阅读 COPYING 这个
文件并且确实给予您的朋友 GNU Emacs 的拷贝。请经由「使用、撰写、以及
分享自由软件」来帮助消除软件障碍主义拥有权
;;; DO NOT PUT THIS ON ZHS OR ZHT FILES ....
;;; Local Variables:
;;; coding:
;;; End:
转自http://blog.csdn.net/goodboy1881/article/details/640797