comparison etc/TUTORIAL.cn @ 49994:dcf78d005b68

New file.
author Richard M. Stallman <rms@gnu.org>
date Fri, 28 Feb 2003 15:25:33 +0000
parents
children 173ef569a9e0
comparison
equal deleted inserted replaced
49993:a40d0a292281 49994:dcf78d005b68
1 Copyright (c) 1985, 1996, 2002 Free Software Foundation;
2 Chinese Translation by Chao-Hong Liu (2002); 请见页尾条件。
3 你正在阅读 Emacs 快速指南(Emacs tutorial)。
4
5 Emacs 指令通常包含有 CONTROL 键(有时候以 CTRL 或 CTL 来标示)
6 或是 META 键(有时候以 EDIT 或 ALT 来标示)。
7 为了避免每一次都要写出其全名,我们将会使用下述的缩写:
8
9 C-<chr> 表示当键入字元 <chr> 时 按住 CONTROL 键。
10 因此,C-f 就是:按住 CONTROL 键再键入 f。
11 M-<chr> 表示当键入字元 <chr> 时 按住 META 或 EDIT 或 ALT 键。
12 如果没有 META、EDIT、或 ALT 键时,则可以用
13 「按一下 ESC 键然後放开,再键入 <chr> 的步骤」
14 来作为替代。我们以 <ESC> 来表示 ESC 键。
15
16 重要备忘录:
17 要离开 Emacs 操作阶段(session),键入 C-x C-c。(两个字元)。
18 位在左侧边界的「>>」字元是让你可以试着使用的指令的提示。举例来说:
19 <<Blank lines inserted here by startup of help-with-tutorial>>
20 >> 现在键入 C-v(View next screen)以移到下个萤幕
21 (试试看,键入字元 v 时,按住 CONTROL 键)。
22 从现在开始,你应该在每次阅读完目前的萤幕时做一次这个动作。
23
24 要注意的是,当你从一个萤幕移到另一个时,中间会有两行重复;
25 这样做是为了提供一些连续性,让你可以接续地阅读文字。
26
27 你需要知道的第一件事是如何在文字中移动。你已经知道了可以 C-v
28 来向前移动一个萤幕。要向後移动一个萤幕,则键入 M-v
29 (按住 META 键,然後键入 v,或是如果你没有 META、EDIT、或 ALT 键
30 时键入 <ESC>v)。
31
32 >> 试着键入 M-v 然後 C-v,连续个几次。
33
34 【现在你可以 C-v 指令移到後面「翻译」一节,
35 以取得关於本文的翻译相关事项;然後以 M-v 指令回到这里。】
36
37
38 * 摘要(SUMMARY)
39 -----------------
40
41 以下的指令在检阅萤幕时相当有用:
42 【我们现在以「萤幕」来表示「显示档案内容的区域」,
43 因为目前是处在 Emacs 中的单窗格(window)显示状态,
44 如果是在多窗格的状态下,这里所介绍的指令则作用在「工作中的窗格」。
45 有关於窗格的介绍,请见窗格(windows)一节。】
46
47 C-v 向前移动一个萤幕/窗格
48 M-v 向後移动一个萤幕/窗格
49 C-l 清除萤幕/窗格,再重新显示所有文字,
50 游标所在位置会显示於萤幕/窗格的中央。
51 (是 CONTROL-L 而不是 CONTROL-1)
52
53 >> 找出游标的位置,并注意其附近的文字为何。然後键入 C-l。
54 再次找出游标的位置,确认一下相同的文字现在也位在其附近。
55
56
57 * 基本的游标控制(BASIC CURSOR CONTROL)
58 ----------------------------------------
59
60 萤幕到萤幕的移动是很有用,
61 但是你如何移动到位於萤幕内文字中的特定位置呢?
62
63 有几种方式可以进行。最基本的方法是使用指令 C-p、 C-b、 C-f、和 C-n。
64 每一个指令都将游标移往某个特定的方向。
65 下表所示的是这四个指令和它们所移动的方向:
66
67 前一行 C-p
68 :
69 :
70 向後移 C-b .... 目前游标位置 .... 向前移 C-f
71 :
72 :
73 後一行 C-n
74
75 >> 以 C-n 或 C-p 将游标移到图形的中央。
76 键入 C-l 会看到整个图形显示在萤幕的中央。
77
78 你应该会发现用字母来想这些很容易:
79 P 表示 previous、N 表示 next、B 表示 backward、而 F 则表示 forward。
80 这些就是基本的游标定位(positioning)指令,你将「总是」用到它们,
81 所以现在就把它们记下来对你会很有用的。
82
83 >> 按几次 C-n 把游标往下移动到这行。
84
85 >> 按几次 C-f 往前移到这行,然後再以 C-p 往後移动。
86 看看当游标在本行中央时,C-p 的动作是怎样。
87
88 每一个文字行都以一个 Newline 字元作为结束,
89 它是用来与下一行作为分别。在你档案中的最後一行应该要有一个 Newline
90 来作为结束(但是 Emacs 并不一定需要它来编辑档案)。
91
92 >> 试着在一行开始的地方键入 C-b 。结果应该会移动到前一行的最後面。
93 这是因为它往後移动时越过了 Newline 字元。
94
95 C-f 也可以和 C-b 一样地越过 Newline 字元。
96 【Newline 字元是「不可见(invisible)字元」,
97 在编辑器中一般看不到它,这里只是告诉你:在行首再往前走,
98 那麽游标会跑到前一行(如果有前一行的话);在行尾再往後走,
99 那麽游标会跑到後一行(如果有後一行的话)。「越过 Newline 字元」
100 会让游标跑到另外一行。】
101
102 >> 多按几次 C-b,自己感觉一下游标在哪。
103 然後按几次 C-f 回到这行的尾巴。
104 再按一次 C-f 就可以移到下一行了。
105
106 当你移动游标穿越萤幕的上方或下方时,在边界外的文字会移位进入萤幕内。
107 这称为「卷动」。它让 Emacs 可以将游标移动到文字中的任意特定位置,
108 同时(游标)不会跑出萤幕外。
109
110 >> 试着以 C-n 将游标越过萤幕下方,然後看看发生了什麽事。
111
112 如果一个字元一个字元地移动太慢的话,你可以一个字一个字地移动。
113 M-f (META-f) 往前移动一个字,M-b 则往後移动一个字。
114 【对中文来说,一个字元等同於一个字,
115 但可以想见这个功能在编辑英文这种拼音文字时相当有用。】
116
117 >> 键入一些 M-f 和 M-b。
118
119 当你在一个字的中间时,M-f 会移动到这个字的尾巴。
120 当你在字与字间的空白时,M-f 会移动到下一个字的尾巴。
121 M-b 的效果相似,只是方向不同。
122
123 >> 按几次 M-f 和 M-b,中间夹杂一些 C-f 和 C-b,
124 这样子你就可以观察 M-f 和 M-b 在各种「位在字间或字元间」
125 的不同位置,所表现出来的行为。
126
127 请注意 C-f、C-b 和 M-f、M-b 两对之间的相似性。「经常」的状况是:
128 META 字元是用来作为与「以语言定义出的单位(字、句子、段落)」
129 有关的操作,而 CONTROL 字元则是作用在
130 「与你所编辑无关的『基本』单位(字元或行等)」上。
131 【对中文使用者来说,文章的段落和结构是一个问题,
132 (1) 首先遇到的问题先是标点符号,标点应该要有标点的作用,
133 -- 如同它在英文中所表现的一样,但目前来说,标点符号被视为字,
134 这使我们失去了第一步将文章结构化的依据。再来就是词库的建立,
135 这对英文来说异常简单 -- 它的字通常由空白所隔开,
136 提供了最基本的结构(它的标点符号则提供了第二层次的结构)--
137 但对中文来说则需要作进一步的处理。
138 不过既然「搜寻」是一种游标移动指令,只要先建立合用的词库,
139 搭配起来应该可以迎刃而解。
140 (2) 翻译在本文中,每一行的 Newline 字元都摆在标点符号後边,
141 并且每一行都不超过 70 个字元宽,以此方式和语言单位间作出关系。
142 (3) 有些使用者则是以使用英文标点符号来解决问题,
143 也许这是目前最方便的处理方式, 如本段所示. 】
144
145 这个相似性在「行与句子」之间也同样适用:
146 C-a 和 C-e 会将游标移动到「一行」的 开始和结尾处,而
147 M-a 和 M-e 则将游标移动到「一句」的 开始和结尾处。
148
149 >> 试着按两次 C-a,再按两次 C-e。
150 试着按两次 M-a,再按两次 M-e。
151
152 看一下为什麽重复的 C-a 指令会没有作用,
153 而重复的 M-a 指令则继续移动到下一个句子。虽然这并不能说是完全类比,
154 但是其中每个指令的行为看起来都十分自然。
155
156 游标在文字中的位置也可以称作「点位(point)」。
157 简单来说就是:游标表现出萤幕中「点位」所在的文字位置。
158
159 这里是一些简单「游标移动(cursor-moving)操作」的整理,
160 其中也包括了「字和句」的移动指令:
161 【为了说明「以字为单位地」移动的意义,於下保留此段英文;
162 Here is a summary of simple cursor-moving operations, including the
163 word and sentence moving commands: 】
164
165 C-f 往前移动一个字元
166 C-b 往後移动一个字元
167
168 M-f 往前移动一个字
169 M-b 往後移动一个字
170
171 C-n 移动到下一行
172 C-p 移动到前一行
173
174 C-a 移动到行首
175 C-e 移动到行尾
176
177 M-a 移回句首
178 M-e 移到句尾
179
180 >> 练习几次这些指令。这些都是最常使用到的指令。
181
182 还有两个重要的游标动作(cursor-motion)指令,
183 M-<(META Less-than),移动到文字的最开始,以及
184 M->(META Greater-than),移动到文字的最後。
185
186 在大部份的终端机,「<」是在 comma 上方,
187 所以你必须要使用 shift 键来键入。在这些终端机上,
188 你必须使用 shift 键来键入 M-<;没有使用 shift 键,
189 你就变成键入 M-comma 了。
190
191 >> 现在试一下 M-< ,移到本快速指南的最开始。
192 然後再重复地使用 C-v 回到这里。
193
194 >> 现在试一下 M-> ,移到本快速指南的最後。
195 然後再重复地使用 M-v 回到这里。
196
197 如果你的终端机有方向键的话,你也可以用方向键移动游标。
198 我们有叁个理由建议你学习 C-b、C-f、C-n、和 C-p:
199 (1) 任何的终端机都能使用。
200 (2) 一旦你使用 Emacs 相当熟练了,你会发现键入这些 CONTROL 字元,
201 比起使用方向键快多了(因为你不需要将手移开打字区)。
202 (3) 一旦你使用这些 CONTROL 字元指令成为习惯,
203 你也可以很容易地学会其他进阶的游标动作指令。
204
205 大部份的 Emacs 指令接受数字参数;对大部份的指令而言,
206 它的作用是指定重复次数。你要指定一个指令的重复次数的作法是:
207 先键入 C-u,然後在你键入指令前,键入代表重复次数的数位。
208 如果你有一个 META(或 EDIT 或 ALT)键,
209 那麽你还有另外一个替代作法来输入数字参数:
210 按住 META 键时打入这数字。我们建议你学习 C-u 的方法,
211 因为它在任何终端机都可以使用。此一数字参数也称作为「字首参数」,
212 因为你在这参数所作用到的指令前键入它。
213
214 举例来说, C-u 8 C-f 向前移动 8 个字元。
215
216 >> 试着以一个数字参数来使用 C-n 或 C-p,
217 只一个指令就将游标移动到这行的附近。
218
219 大部份的指令使用数字参数来作为其重复次数,
220 但是其中有些指令则是作为其他用途。有几个指令(目前你尚未学到)
221 将它作为旗标 -- 以一个字首参数的型态出现,而不管其值为何,
222 它们让这指令做些不一样的事。
223
224 C-v 和 M-v 则是另一类的例外。当给定一个参数时,它们卷动
225 「所指定的数量的行(以行为单位)」,而不是以「萤幕」为单位卷动。
226 举例来说,C-u 8 C-v 将显示萤幕卷动 8 行。
227
228 >> 现在试着键入 C-u 8 C-v。
229
230 这指令应该已经将萤幕向上移了 8 行。若你想将它再次地向下卷动,
231 你可以在执行 M-v 时给定一个参数。
232
233 如果你正在使用 X 视窗系统,在 Emacs 视窗左手侧应该有一个称为
234 「卷动轴」的长方型区域。你可以用滑鼠在卷动轴按一下来卷动文字。
235
236 >> 试着在「卷动轴内反白区域上」压一下中间钮。这应该会将文字卷动到
237 「由你所按一下滑鼠的地方」所决定的位置。
238
239 >> 当按住中间时,试着将滑鼠上下移动。
240 你会看到文字随着你移动滑鼠而上下移动。
241
242
243 * 当 EMACS 发呆时(WHEN EMACS IS HUNG)
244 ---------------------------------------
245
246 如果 Emacs 停止回应你的指令,你可以键入 C-g 来安全地停止它。
247 你也可以使用 C-g 来停止执行过久的指令。
248
249 你也可以使用 C-g 来取消数字参数或你不想要完成的指令。
250
251 >> 键入 C-u 100 以设定一个 100 的数字参数,然後键入 C-g。
252 现在键入 C-f。它应该只会移动一个字元,因为你已经以 C-g
253 取消了参数。
254
255 如果你已经不小心地键入一个 <ESC>,你可以 C-g 来取消它。
256
257
258 * 无效化的指令(DISABLED COMMANDS)
259 -----------------------------------
260
261 有一些 Emacs 指令被「无效化」了,因此初学者不会意外地使用到它们。
262
263 如果你键入了某一个无效化的指令,Emacs 会显示一个讯息,
264 说明这个指令是什麽,并且询问你是否想要继续,然後执行这指令。
265
266 如果你真的想要试一下这个指令,那麽在当 Emacs 询问你时,请键入空白。
267 一般来说,如果你不想要执行这个无效化的指令,请以『n』来回答它。
268
269 >> 键入 C-x C-l (这是个无效化的指令)
270 然後键入 n 来回答问题。
271
272
273 * 窗格(WINDOWS)
274 -----------------
275
276 Emacs 可以有数个窗格,每一个显示它自己的文字。
277 我们在稍後会解释如何使用多重窗格。
278 现在我们想要解释如何除去多馀的窗格,然後回到基本的单窗格编辑。
279 它很简单:
280
281 C-x 1 One window (即,除去其他所有的窗格)。
282
283 那是个 CONTROL-x 後面跟着数字 1。
284 C-x 1 将含有游标的窗格扩大到整个萤幕。它将所有其他的窗格除去。
285
286 >> 移动游标到本行并且键入 C-u 0 C-l。
287 >> 键入 CONTROL-h k CONTROL-f。
288 看看这个窗格在当一个新的窗格出现
289 (以显示有关 CONTROL-f 指令的文件时),它是如何缩小的。
290
291 >> 键入 C-x 1 以使文件列表窗格消失。
292
293 这个指令并不像你先前所学过的指令那般,它包括了两个字元。
294 它是以字元 CONTROL-x 作为开始。
295 有一整个系列的指令是以 CONTROL-x 作为开始;
296 它们之中有许多是与「窗格、档案、暂存区以及相关事物」有关的。
297 这些指令有 2、3 或 4 个字元长。
298
299
300 * 插入与删除(INSERTING AND DELETING)
301 --------------------------------------
302
303 如果你想要插入文字,把它键入就是了。你可以看到的字元,
304 像是 A, 7, *, 等,被 Emacs 视为文字并且可以直接插入。
305 键入 <Return>(carriage-return 键)以插入一个 Newline 字元。
306
307 你可以键入 <Delete> 以删除你最後键入的字元。
308 <Delete> 是一个标示为「Del」的键盘键。
309 在某些情形下,「Backspace」键的作用如同 <Delete>,但不总是如此!
310
311 更一般地说,<Delete> 将位於目前游标位置前一个字元加以删除。
312
313 >> 现在做 -- 键入一些字元,然後键入几次 <Delete> 来删除它们。
314 不要担心这个档案会被更动;你不会影响到原来的快速指南。
315 (你现在看到的)这一个是你的个人拷贝。
316
317 当一行文字变得比「在窗格中的一行」长时,这一行文字会「接续」
318 到第二行窗格行。这时一个反斜线「\」(或如果你使用视窗化的显示,
319 则是一个小小弯弯的箭头)会位在其右边界以指出此行接续着。
320
321 >> 插入文字,一直到你达到右边界,然後再继续插入。
322 你会看到一个接续行出现。
323
324 >> 使用 <Delete> 删除一些文字,直到此行再次成为一个窗格行。
325 接续行消失了。
326
327 你可以像删除其他字元一样地删除 Newline 字元。
328 将位在两行中的 Newline 字元删除会让它们合并成为一行。
329 如果合并的结果使这一行太长,以致无法符合窗格的宽度,
330 它会以一个接续行来显示。
331
332 >> 移动游标到本行的开头并键入 <Delete>。
333 这会将本行与其前一行结合为一行。
334
335 >> 键入 <Return> 以重新插入你刚才删除的 Newline 字元。
336
337 记得大部份的 Emacs 指令都可以给予一个重复计数(repeat count);
338 这也包括了文字字元。重复一个文字字元会将它插入数次。
339
340 >> 现在就试一下 -- 键入 C-u 8 * 以插入 ********。
341
342 你现在已经学到了「键入个什麽东西进 Emacs 以及修正错误」
343 的大部份基本方法。你也可以「以字或行为单位」地删除。
344 这里有份关於「删除操作」的摘要:
345
346 <Delete> 删除游标所在的 前一个字元
347 C-d 删除游标所在的 後一个字元
348
349 M-<Delete> 删除游标所在的 前一个字
350 M-d 删除游标所在的 後一个字
351
352 C-k 删除从游标所在到「行尾」间的字元
353 M-k 删除从游标所在到「句尾」间的字元
354
355 注意「<Delete> 和 C-d」还有「M-<Delete> 和 M-d」
356 是平行地自 C-f 和 M-f 扩充出来的
357 (嗯,<Delete> 并不是控制字元,但是没什麽好担心的)。
358 C-k 和 M-k 在某种程度上与 C-e 和 M-e 一样,
359 如果把「一行」和「一句」作为类比的话。
360
361 你也可以只以一种方法来删除缓冲区内的任何部份,
362 先移动到你想要删除的部份的一端,然後键入 C-@ 或 C-SPC
363 (任一个即可)。(SPC 指的是 Space Bar。)
364 再移到那部份的另一端,接着键入 C-w。
365 这样就会把介於这两个位置间的所有文字删除。
366
367 >> 移动游标到上一段开头的「你」字。
368 >> 键入 C-SPC。 Emacs 应该会在萤幕的下方显示一个「Mark set」讯息。
369 >> 移动游标到第二行中的「端」字。
370 >> 键入 C-w。这样会把从「你」开始到刚好「端」之前的文字删除。
371
372 要注意的是「杀掉(killing)」和「删除(deleting)」
373 的不同在於被杀掉的可以拉回,而被删除的则不能。
374 【有点难以理解,
375 (1) 你可以这麽想:「被杀掉的」尚存尸骨,而「被删除的」则尸骨无存了,
376 可见得对电脑资料来说,「删除」比「杀掉」严重多了。
377 (2) 实际上,就算被删除了,我们还是有技术可以把它救回来,
378 尤其是文字资料,前提是删除後不能进行实体记忆体的格式化动作。
379 但这对於一般使用者而言是不可能的,因此就不考虑这情形了。】
380 重新插入被杀掉的文字称为「拉回(yanking)」。
381 一般而言,可以移除掉很多文字的指令会把那些文字储存起来
382 (它们设定成你可以将文字拉回),
383 而那些只是删除一个字元或者空白行或空白的指令,
384 则不会储存这些被删除的文字(因此你不能将那文字拉回)。
385
386 >> 移动游标到一非空白行的开始。
387 然後键入 C-k 杀掉在那一行上的文字。
388 >> 第二次键入 C-k。你将会看到它杀掉跟在那一行後面的 Newline 字元。
389
390 请注意单独的 C-k 会把一行的内容杀掉,而第二个 C-k
391 则会杀掉那一行本身,并且使得所有其他的行向上移动。
392 C-k 以很特别的方式来处理数字参数,它会杀掉很多行以及它们的内容,
393 这不仅仅是重复而已,C-u 2 C-k 会把两行以及它们的 Newline 字元杀掉;
394 如果只是键入 C-k 两次并不会这样。
395
396 将被杀掉的文字回复的动作称为「拉回(yanking)」。
397 (把它想像成你把别人从你身上夺去的东西猛力地拉回来。)
398 你可以在你删除文字的地方拉回,也可以在文字的其他地方拉回。
399 你可以拉回数次以制作它的数份拷贝。
400
401 拉回的指令为 C-y。它会在目前游标的位置重新插入最後杀掉的文字。
402
403 >> 试试看;键入 C-y 将文字拉回。
404
405 如果你连续地做了数次 C-k,所有被杀掉的文字都会被储存在一起,
406 因此做一次 C-y 就会把所有这些行都拉回来。
407
408 >> 现在做一下,键入 C-k 数次。
409
410 现在要回复那些杀掉的文字:
411
412 >> 键入 C-y。然後把游标往下移动个几行,再一次键入 C-y。
413 你现在知道如何复制某些文字了。
414
415 如果你有一些文字想要拉回来,但是後来你又杀了某些东西,
416 那麽该怎麽做呢?C-y 会把最近杀掉的拉回来,但是先前的文字并没有消失,
417 你可以用 M-y 来回到它。当你已经使用 C-y 把最近杀掉的拉回来之後,
418 再键入 M-y 来把这些拉回来的文字替换为先前所杀掉的。
419 一次又一次地键入 M-y 会把先前再先前所杀掉的文字带回来。
420 当你到了你想找的文字时,你不需要做任何事来保存它,
421 只要继续你的编辑,把这些已拉回的文字留在那里就好。
422
423 如果你 M-y 做了很多次,你可能会回到起始点,也就是最近杀掉的。
424
425 >> 杀掉一行,到处绕绕,再杀掉另一行。
426 然後用 C-y 将第二次杀掉的那行带回来。
427 然後再用 M-y,它将会被第一次杀掉的那行取代。
428 再做几次 M-y 看看你会得到什麽。
429 不间断地做,直到第二个杀掉行回来,再做个几次。
430 如果你想的话,你可以试着给 M-y 正的或是负的参数。
431
432
433 * 取消动作(UNDO)
434 ------------------
435
436 如果你对文字做了一些改变,後来觉得它是个错误,
437 你可以 Undo 指令取消这一个改变,C-x u。
438
439 通常 C-x u 会把一个指令所造成的改变取消掉;
440 如果你在一行中重复了许多次 C-x u,每一个重复都会取消额外的指令。
441
442 但是有两个例外:
443 (1) 没有改变文字的指令不算(这包括了游标移动的指令还有卷轴指令),
444 以及
445 (2) 自行键入的字元以一群一群 -- 每群最多 20 个 -- 来进行处理
446 (这是为了减少你在取消「插入文字动作」所必须键入 C-x u 的次数)。
447
448 >> 以 C-k 将这一行杀掉,然後键入 C-x u 後它会再次出现。
449
450 C-_ 是另一个取消指令;它的作用就和 C-x u 一样,
451 但是在一行中它比较容易键入许多次。
452 C-_ 的缺点是在某些键盘中不太清楚如何键入它,
453 这也是为什麽我们同时提供 C-x u 的原因。
454 在某些终端机,你可以按住 CONTROL 再键入 / ,来键入 C-_。
455
456 一个数字参数对 C-_ or C-x u 来说,是作为重复的次数。
457
458
459 * 档案(FILE)
460 --------------
461
462 为了使你编辑的文字永久保存,你必须把它放到一个档案中。
463 不然,当你离开 Emacs 後,它就会随之消失。为了把你的文字放在档案中,
464 你必须在你键入这些文字前「找(find)」档案。
465 (这也称之为「拜访(visiting)」档案。)
466
467 找一个档案表示你可以在 Emacs 中看到档案的内容。从许多方面来看,
468 它就像是你直接编辑那个档案一样。然而,直到你「储存」这个档案之前,
469 你使用 Emacs 编辑所做出的改变并不会保存下来。
470 这就是为什麽当你不想要时,你可以避免留下修改到一半的档案在系统中。
471 即使当你储存了,Emacs 也会把原本的档案以一个不同的名称保留下来,
472 若你稍後觉得你的改变是一个错误的话,就可以使用它。
473
474 在靠近萤幕的下方,你可以看到由破折号开始与结束的一行 --
475 通常是以「--:-- TUTORIAL.cn」或其他类似的东西作为开始。
476 这是萤幕的一部分,通常用来表示你正在拜访的档案。现在,
477 你正在拜访的档案叫做「TUTORIAL.cn」,它是你个人的拷贝。
478 当你以 Emacs 找出一个档案时,那个档案的名字就会出现在那个地方。
479
480 关於寻找档案的指令中,有一个很特别的是,
481 你必须说出这个你想要的档案名称。我们说这个指令
482 「从终端机中读进了一个参数」(在这个例子中,这参数就是档案的名称)。
483 当你键入这个指令後,
484
485 C-x C-f 找一个档案
486
487 Emacs 会要你键入档名。你所键入的档名会出现在萤幕的底行。
488 在被用来作为这种形式的输入时,底行被称为小缓冲区(minibuffer)。
489 你可以使用正常的 Emacs 编辑指令来编辑这个档名。
490
491 当你正在键入档名时(或是任何的小缓冲区输入时),
492 你可以用 C-g 这个指令来取消它。
493
494 >> 键入 C-x C-f,然後键入 C-g。这会取消小缓冲区,
495 并且也会取消使用这个小缓冲区的 C-x C-f 指令。
496 因此你没有找任何档案。
497
498 当你已经键入了这个档名,请键入 <Return> 来结束它。
499 然後 C-x C-f 指令就会开始运作,并且找到你所选择的档案。
500 小缓冲区在当 C-x C-f 指令结束时就会消失。
501
502 过了一会儿,档案的内容就会出现在萤幕,然後你就可以编辑它的内容。
503 当你想要你的改变永久保存时,键入这个指令:
504
505 C-x C-s 储存这个档案
506
507 这会把在 Emacs 中的文字复制到档案中。当你第一次做这个动作时,
508 Emacs 会将原始的档案重新命名成一个新的名字,这样它才不会消失。
509 新的名字通常会加入「~」到原始档案的名字後面。
510
511 当储存结束时,Emacs 会把写入档案的名字列出来。你应该经常地进行储存,
512 这样子如果系统当机时,你就不会损失太多工作。
513
514 >> 键入 C-x C-s 以储存本快速指南的你的拷贝。
515 这会把「Wrote ...TUTORIAL.cn」这个讯息显示在萤幕的下方。
516
517 注意:在某些系统中,键入 C-x C-s 将会把萤幕冻结,
518 你将看不到从 Emacs 来的任何输出。
519 这表示操作系统一个称为「流程控制」的「功能」将 C-s 指令拦截住,
520 并且不让它传到 Emacs。要取消萤幕的冻结,请键入 C-q。
521 然後到 Emacs 使用手册中看看对於「渐进式搜寻的同时进入
522 (Spontaneous Entry to Incremental Search)」这个主题,
523 以取得处理这个「功能」的建议。
524
525 你可以找出一个已经存在的档案,然後观看它或编辑它。
526 你也可以找一个还没有存在过的档案。这是以 Emacs 建立一个档案的方法:
527 找这个档案,就从零开始,然後开始插入文字到这个档案中。
528 当你要求「储存」这个档案,Emacs 会真的建立一个档案,
529 并把你所插入的文字摆到档案中。从那时候开始,
530 你就可以当自己是在编辑一个已经存在的档案了。
531
532
533 * 缓冲区(BUFFER)
534 ------------------
535
536 如果你以 C-x C-f「找」第二个档案,第一个档案仍然存在 Emacs 内。
537 要切换回它,你可以 C-x C-f 再找它一次。
538 依此方式,你可以在 Emacs 内开启不少档案。
539
540 >> 以键入 C-x C-f foo <Return> 的方式建立一个名为「foo」的档案。
541 然後插入一些文字,编辑它,然後再以 C-x C-s 储存「foo」。
542 最後,键入 C-x C-f TUTORIAL.cn <Return> 回到本快速指南。
543
544 Emacs 储存每个档案的文字在一个称为「缓冲区(buffer)」的物件中。
545 找一个档案会在 Emacs 内部建立一个缓冲区。想要看目前存在你的 Emacs
546 的工作中缓冲区列表,键入
547
548 C-x C-b 列出缓冲区
549
550 >> 现在就试一下 C-x C-b
551
552 看看每一个缓冲区是如何命名的,它也可能同时拥有一个
553 「储存其内容的档案」的名称。有一些缓冲区则没有其对应的档案。
554 举例来说,命名为「*Buffer List*」的缓冲区并没有任何档案。
555 它是 C-x C-b 这个指令所建立出来的包含「缓冲区列表内容」的缓冲区。
556 你在一个 Emacs 窗格所见到的「任何」文字都是某个缓冲区的一部份。
557
558 >> 键入 C-x 1 以离开缓冲列表
559
560 如果你对档案中的文字做了修改,然後找另一档案,
561 这个动作并不会储存第一个档案。它的修改仍旧存在 Emacs 中,
562 也就是在那个档案的缓冲区中。
563 对於第二个档案的建立或编辑并不会影响到第一个档案的缓冲区。
564 这样子非常有用,但这个情形也表明了你需要「一个方便的方法」
565 来储存第一个档案的缓冲区。
566 只是为储存第一个档案就必须以 C-x C-f 切换缓冲区,
567 才能以 C-x C-s 将它储存,总是个让人讨厌的过程。因此我们有
568
569 C-x s 储存一些缓冲区
570
571 C-x s 会询问你关於你已做出修改但还没储存的每一个缓冲区。
572 它会问你,对於每一个这样的缓冲区,是否要储存?
573
574 >> 插入一行文字,然後键入 C-x s。
575 它应该会问你是否要储存名为 TUTORIAL.cn 的缓冲区。
576 键入『y』以回答要储存。
577
578
579 * 扩充指令集(EXTENDING THE COMMAND SET)
580 -----------------------------------------
581
582 由於 Emacs 拥有太多指令,即便使用上所有的 CONTROL 和 META 字元,
583 也没办法完全摆上。Emacs 以 X(扩充『eXtend』)指令来解决这个问题。
584 扩充指令有两种型式:
585
586 C-x 字元扩充。後面跟着一个字元。
587 M-x 有名称的指令扩充。後面跟着一个长的名称。
588
589 还有一些指令通常来说是很有用的,但是比你已经学到的指令较少使用。
590 你已经看过其中两个:档案指令中的 C-x C-f 去寻找,以及 C-x C-s 去储存。
591 其他的例子则有结束 Emacs 阶段的指令 -- 这个指令是 C-x C-c。
592 (不要担心你会失去已经做出的改变,C-x C-c 在它杀掉 Emacs
593 之前会提供储存每一个变动的档案的机会。)
594
595 C-z 是 *暂时* 离开 Emacs 的指令
596 -- 因此你稍後可以回到同样的 Emacs 阶段。
597
598 在某些允许它的作用的系统中, C-z 会「暂停住(suspends)」Emacs,
599 也就是说,它会回到 shell 但不会把 Emacs 毁掉。在最常用的 shell 中,
600 你可以用『fg』或『%emacs』两种指令恢复 Emacs。
601
602 在没有提供暂停功能的系统中,C-z 会在 Emacs 底下建立一个 subshell
603 以让你有机会执行其他的程序,并且在稍後回到 Emacs,
604 它并没有真的离开 Emacs。在这个例子中,shell 指令『exit』是从
605 subshell 回到 Emacs 的通常方式。
606
607 使用 C-x C-c 的时机是当你打算要登出时。
608 它也非常适合用来离开被其他邮件处理程序,
609 以及许多不同的应用程序所启动的 Emacs。然而在一般的状况下,
610 如果你不打算登出,最好是把 Emacs 暂停而不是离开它。
611
612 有许多 C-x 的指令。这里是一份你已经学过的列表:
613
614 C-x C-f 找档案。
615 C-x C-s 储存档案。
616 C-x C-b 列出缓冲区。
617 C-x C-c 离开 Emacs。
618 C-x 1 除了一个外,删去其他所有的窗格。
619 C-x u 取消动作。
620
621 以扩充来命名的指令通常是不太常使用的指令,
622 或是只在特定的模式下才会使用的指令。一个例子是取代字串指令,
623 它会全域地将一个字串以另一个来取代。当你键入 M-x 时,
624 Emacs 会在萤幕的底端询问你,然後你也应该键入这个指令的名称。
625 在这个例子中是『replace-string』只要键入『repl s<TAB>』,
626 然後 Emacs 将会补齐这个名称。以 <Return> 来结束这个指令名称。
627
628 取代字串指令需要两个参数 -- 被取代的字串以及用来取代它的字串。
629 你必须以 Newline 字元来结束每一个参数。
630
631 >> 将游标移到本行的下两行空白,然後键入
632 M-x repl s<Return>changed<Return>altered<Return>。
633
634 【为了说明的目的,於下保留一行原文。
635 Notice how this line has changed: you've replaced... 】
636
637 请注意这一行是怎麽改变的:在游标的起始位置之後,
638 你已经将 c-h-a-n-g-e-d 这个字 -- 不管它在哪里出现 --
639 以「altered」这个字来取代了。
640
641
642 * 自动存档(AUTO SAVE)
643 -----------------------
644
645 当你在一个档案中做了修改,但是还没有将它们储存起来,
646 那麽如果你的电脑当机,它们将有可能遗失。
647 为了避免这种情形发生在你的身上,
648 Emacs 会定期地将你正在编辑的档案写入「自动储存」档案中。
649 自动储存档案在档名的前後会各有一个 # 符号;
650 举例来说,如果你的档案名为「hello.c」,
651 那麽它的自动储存档案的档名就是「#hello.c#」。
652 当你以平常的方式储存档案时,Emacs 就会把它的自动储存档删除。
653
654 如果当机,你可以经由正常地寻找档案
655 (指的是你在编辑的档案而不是自动储存档),
656 然後键入 M-x recover file<Return> 来回复你的自动储存档。
657 当它要求确认时,键入 yes<Return> 以继续并回复自动储存的资料。
658
659
660 * 回应区(ECHO AREA)
661 ---------------------
662
663 如果 Emacs 见到你很慢地键入多字元指令,它会将它们显示在位於窗格下方,
664 称为「回应区」的区域给你参阅。回应区位在窗格的最後一行。
665
666
667 * 状态行(MODE LINE)
668 ---------------------
669
670 位在回应区的正上面是称为「状态行」的一行。
671 状态行显示出一些信息,如:
672
673 --:** TUTORIAL.cn (Fundamental)--L670--58%----------------
674
675 本行提供一些关於「Emacs 的状态」以及「你正在编辑的文字」的有用信息。
676
677 你已经知道档名的意义是什麽了 -- 就是你找的档案。
678 -NN%-- 指出目前你在文字档中的位置;它的意思是说:
679 有 NN 百分比的文字位在窗格的上面。
680 如果档案的顶端就位在窗格中,那麽它就会显示 --Top-- 而不是 --00%--。
681 如果档案的底部就位在窗格中,那麽它是显示 --Bot--。
682 如果你正在看的文字档很小,在窗格中就足以看到全部的内容,
683 那麽状态行就会显示 --All--。
684
685 L 和数字以另一种方式来表示出位置:它们给出了目前所在的行数(Line)。
686
687 在靠近前面的星号表示你已经对这些文字做了改变。
688 在你刚拜访或储存一个档案之後,
689 状态行的那个部分会没有星号,只有破折号。
690
691 状态行中位於小括弧里面的部分,是用来告诉你正在使用什麽编辑模式。
692 预设的模式是 Fundamental,也就是你现在使用的。
693 它是「主模式」的一个例子。
694
695 Emacs 有许多不同的主模式。它们之中有一些是用来编辑不同的语言
696 以及/或不同种类的文字,像是 Lisp 模式、Text 模式等等。
697 在任何的时间只有一个主模式可以作用,
698 并且它的名称总可以在状态行中被找到,
699 就在现在的「Fundamental」中的位置。
700
701 每一个主模式都使得一些指令的行为表现得不太一样。
702 举例来说,在一个程序中有一些指令用来制作出注解,
703 而由於每一种程序语言对於一个注解应该长得像什麽,都有着不同的想法,
704 因此每一个主模式都必须以不同的方式来插入注解。
705 每一个主模式是一个延伸指令的名称,使得你可以用来切换至那个模式。
706 举例来说,M-x fundamental-mode 就是切换到 Fundamental
707 模式的一个指令。
708
709 如果你想要编辑中文或英文等文字类型的档案 -- 像是现在的这一个,
710 你应该使用 Text 模式。
711
712 >> 键入 M-x text mode<Return>。
713
714 不要担心,没有任何一个你已经学过的 Emacs 指令,
715 会被改变成任何非常不同的形式。
716 但是你可以发现到 M-f 和 M-b 现在把撇号(')视为字的一部分。
717 先前,在 Fundamental 模式中,M-f 和 M-b 将撇号视为字的分隔符号。
718
719 主模式通常会像上述那个例子一样,做出一些精巧的改变:
720 大部分的指令在每一个主模式中「做同样的事」,
721 但是它们以一点点不同的方式来工作。
722 【再举个例子,接续上面所开的头,以程序语言的注解来说。
723 同样一个插入注解的动作,因为你使用的程序语言/主模式的不同而不同。
724 若你使用 C 语言,Emacs 插入『/* 介於中间的为注解区块 */』;
725 若你使用的是 Fortran 语言,Emacs 插入『c 以字元 c 为首的为注解行』;
726 若你使用的是 Basic 语言,Emacs 则插入『' 撇号以後的为注解文字』。
727 编辑器的弹性如此,实在没有必要为了不同的语言、目的或外观,
728 设计特殊化的编辑器。「求大同,存小异」在这里也是成立的。】
729
730 要浏览你现在所处的主模式的文件,键入 C-h m。
731
732 >> 使用 C-u C-v 一或数次,将本行带到靠近萤幕的上方。
733 >> 键入 C-h m,看看 Text 模式与 Fundamental 模式是哪里不同。
734 >> 键入 C-x 1 将文件从萤幕移除掉。
735
736 主模式之所以称为「主要(major)」的原因是因为它们也有次模式
737 (minor mode)。次要的模式并不是主模式的其他选择,而只是次要的更改。
738 每一个次模式可以被它本身启用或停止,和所有其他的次模式无关,
739 并且也和你的主模式无关。所以你可以不使用次模式,或一个,
740 或任何数量的次模式的组合。
741
742 有一个次模式非常有用,特别是在编辑英文文字时,叫做 Auto Fill 模式。
743 当这个模式启用时,Emacs 在当你插入文字并且使一行太宽时,
744 会将那一行,在字与字之间自动地分隔开。
745
746 你可以 M-x auto fill mode<Return> 来将 Auto Fill 模式启用。
747 当这个模式启用时,你可以使用 M-x auto fill mode<Return> 来将它取消。
748 当这个模式不用时,则这个指令会将它启动,而当这个模式启用时,
749 这个指令会将它关闭。我们说这个指令用来「切换(toggle)」模式。
750
751 >> 现在键入 M-x auto fill mode<Return>。然後一再地插入字串
752 「 asdf 」,直到你看到它分成两行。你必须在它们之间摆上空白,
753 因为 Auto Fill 只在空白处断行。
754
755 边界通常被设定为 70 个字元,但是你可以用 C-x f 指令来改变它。
756 你应该以一个数字参数的方式来给定你所希望的边界设定。
757
758 >> 键入 C-x f 并附上引数 20:『C-u 2 0 C-x f』。
759 然後键入一些文字,看看 Emacs 以 20 个字元,
760 在行与行之间进行 fill 动作。然後再用一次 C-x f 将边界设回 70。
761
762 如果你在一个段落的中间做出改变,
763 Auto Fill 模式并不会为你重新进行 fill 的动作(re-fill)。
764 要 re-fill 这个段落,键入 M-q (META-q),而游标必须处在其中。
765
766 >> 移动游标到前一段中,然後键入 M-q。
767
768
769 * 搜寻(SEARCHING)
770 -------------------
771
772 Emacs 可以搜寻字串(字串可以是一群连续的字元或字)
773 【就中文来说,字元和字基本上意义相同;此处所指的『字』,
774 是英文中没有被空白隔开的字元集合。】,
775 往前或往後搜寻都可以。搜寻一个字串是一种游标移动指令,
776 它会将游标移动到字串出现的下一个地方。
777
778 Emacs 搜寻指令与大部分编辑器的搜寻指令不同的地方在於,
779 它是「渐进的(incremental)」。
780 这表示搜寻发生在你键入想要搜寻的文字串後。
781
782 要开始搜寻的指令是:C-s 往前搜寻,C-r 往後搜寻。
783 但先等一下!现在先不要试。
784
785 当你键入 C-s 时,会发现到有一个字串「I-search」
786 出现在回应区中作为提示。它告诉你 Emacs 现在正处於称为「渐进式搜寻」
787 的状态中,等待你键入你想要搜寻的字串。<Return> 会结束一个搜寻。
788
789 >> 现在键入 C-s 开始一个搜寻。慢一点,一次键入一个字元,
790 键入『cursor』这个字,每键入一个字元时,稍微停一下,
791 注意看看游标发生了什麽事。现在你已曾经搜寻过「cursor」这个字了。
792 >> 再次键入 C-s 来搜寻「cursor」的下一个出现位置。
793 >> 现在键入 <Delete> 四次,看看游标是如何移动的。
794 >> 键入 <Return> 结束搜寻。
795
796 你有没有看到发生了什麽?在一个渐进式搜寻中,
797 Emacs 试着要走到你键入的字串的下一个出现位置。
798 要移动到游标所在的下一个出现位置,只要再键入 C-s 一次。
799 如果并没有这样的出现位置存在,Emacs 会哔一声,
800 并告诉你目前的搜寻「失败」。另外 C-g 也可以用来结束搜寻。
801
802 注意:在某些系统中,键入 C-s 将会把萤幕冻结,
803 你将看不到从 Emacs 来的任何输出。
804 这表示操作系统一个称为「流程控制」的「功能」将 C-s 指令拦截住,
805 并且不让它传到 Emacs。要取消萤幕的冻结,请键入 C-q。
806 然後到 Emacs 使用手册中看看对於「渐进式搜寻的同时进入
807 (Spontaneous Entry to Incremental Search)」这个主题,
808 以取得处理这个「功能」的建议。
809
810 如果你在一个渐进式搜寻的中间,并且键入 <Delete>,
811 你可以发现在搜寻字串中的最後一个字元被消除了,
812 并且搜寻会回到这个搜寻的最後一个地方。
813 举例来说,假设你已经键入了『c』,用来寻找「c」的第一次出现。
814 现在如果你键入『u』,游标会移动到「cu」的第一次出现位置。
815 现在键入 <Delete> ,这会将「u」从搜寻字串中消除,
816 并且游标会移回到「c」的第一次出现位置。
817
818 如果你在一个搜寻的中间,并且键入一个 CONTROL 或 META 字元的话,
819 (但有一些例外 -- 对搜寻而言特别的字元,像是 C-s 和 C-r),
820 搜寻会被结束。
821
822 C-s 会开始一个搜寻,它会寻找搜寻字串在目前游标位置「之後」,
823 的任何出现位置。如果你想要在先前文字中搜寻,键入 C-r 作为替代。
824 除了搜寻的方向相反之外,我们所说的有关 C-s 的所有事情,
825 同样地可以应用到 C-r 上。
826
827
828 * 多重窗格(MULTIPLE WINDOWS)
829 ------------------------------
830
831 Emacs 许多好功能的其中之一是,你可以在萤幕中同时展示超过一个窗格。
832
833 >> 移动游标到这一行并且键入 C-u 0 C-l。
834
835 >> 现在键入 C-x 2,它会将萤幕平分成两个窗格。
836 这两个窗格都显示着这个快速指南。游标则停留在上方的窗格。
837
838 >> 键入 C-M-v 以卷动下方的窗格。
839 (如果你并没有一个真的 META 键,则键入 ESC C-v 亦可。)
840
841 >> 键入 C-x o(『o』指的是其他『other』的意思),
842 将游标移动到下方的窗格。
843
844 >> 在下方的窗格中,使用 C-v 和 M-v 来卷动它。
845 继续维持在上方的窗格中阅读这些指引。
846
847 >> 再一次键入 C-x o 将游标移回到上方的窗格。
848 游标会回到它在上方窗格中,原本所在的位置。
849
850 你可以持续使用 C-x o 在窗格之间切换。
851 每一个窗格有它自己的游标位置,但是只有一个窗格会真的显示出游标。
852 所有通常的编辑指令只会应用到那个游标所在的窗格。
853 我们称这个为「被选择的窗格」。
854
855 指令 C-M-v 在当你於一个窗格中编辑文字,
856 并使用其他的窗格作为参考之用时,是非常有用的。
857 你可以将游标一直保持在你正在编辑的窗格中,
858 并以 C-M-v 指令在其他的窗格循序地前进。
859 【验证工作特别适合以这种方式来进行,如 GNU 中译小组:
860 找一个原始英文档案;再找它翻译好的中文档案,
861 编辑这个「被选择的窗格」,以 C-M-v 指令跟上验证中的段落……。】
862
863 C-M-v 是 CONTROL-META 字元的一个例子。如果你有一个真的 META 键,
864 你可以同时按住 CONTROL 和 META 再键入 v 来键入 C-M-v。
865 CONTROL 或 META 「谁先被按住」并没有影响,
866 因为这两个键都是用来修饰你所键入的字元。
867
868 如果你并没有一个真的 META 键,你可以使用 ESC 来作为替代,
869 这样子顺序就有关系了:
870 你必须键入 ESC ,跟着键入 CONTROL-v,CONTROL-ESC v 并不会作用。
871 这是因为 ESC 是一个具有本身作用的字元,而不是一个修饰键。
872
873 >> (在上方窗格)键入 C-x 1 以除去下方窗格。
874
875 (如果你已经在底端的窗格键入 C-x 1,那麽将会把上面的窗格隐藏住。
876 将这个指令想像成「只保留一个窗格 -- 我正在编辑的这个。」)
877
878 你不需要在两个不同的窗格中显示相同的缓冲区。如果你使用 C-x C-f
879 在一个窗格中找档案,另一个窗格并不因而改变。
880 你可以在独立的任一个窗格中找(它自己的)一个档案。
881
882 这里有另外一个方式可以用来,使用两个窗格显示两个不同的东西:
883
884 >> 键入 C-x 4 C-f,後面跟着你的其中一个档案的名称。
885 以 <Return> 作为结束。看看指定的档案出现在下方的窗格。
886 游标也跑到那里。
887
888 >> 键入 C-x o 以回到上方的窗格,然後以 C-x 1 删除掉下方窗格。
889
890
891 * 递归编辑阶层(RECURSIVE EDITING LEVELS)
892 ------------------------------------------
893
894 有时候你会进入所谓的「递归编辑阶层」。
895 它是由位在状态行的方括弧所指明,并且包含住以小括弧来指明的模式名称。
896 举例来说,你可能会看到 [(Fundamental)],而不是 (Fundamental)。
897
898 要离开递归编辑阶层,请键入 ESC ESC ESC。
899 这是个全功能的「离开」指令。你也可以使用它来除去多馀的窗格,
900 并且离开小缓冲区。
901
902 >> 键入 M-x 以进入小缓冲区;然後键入 ESC ESC ESC 离开。
903
904 你无法使用 C-g 来离开递归编辑阶层。这是因为 C-g 是用来取消指令以及
905 「位於」递归编辑阶层中的「引数(arguments)」之故。
906
907
908 * 取得更多的帮助(GETTING MORE HELP)
909 -------------------------------------
910
911 在本快速指南中,我们试着仅提供刚刚好的信息让你可以开始使用 Emacs。
912 在 Emacs 中有太多可取得的信息,想要在这里全部解释是不可能的。
913 然而,你也许会想要学习更多 Emacs 相关的信息,
914 因为它有许多其他有用的功能。Emacs 提供了「阅读有关 Emacs 指令」
915 的指令。这些「help」指令都以 CONTROL-h 这个字元作为开头,
916 称作为「Help 字元」。
917
918 要使用 Help 功能,键入 C-h 字元,
919 然後再键入一个说明你所需要的帮助的字元。
920 如果你真的不知道要问什麽,那麽请键入『C-h ?』,
921 此时 Emacs 将会告诉你它能够提供的帮助。如果你已经键入 C-h,
922 但发现你并不需要任何帮助,键入 C-g 来取消掉它就是了。
923
924 (有些网站将 C-h 这个字元的意义改变了。
925 他们真的不应该把它设为对所有使用者全部都适用的方法,
926 所以你现在就有了个理由来抱怨系统管理者了。
927 在此同时,如果 C-h 并没有在窗格的底部显示任何有关帮助的讯息,
928 试着键入 F1 键,或是 M-x help <Return>。)
929
930 最基本的 HELP 功能是 C-h c。键入 C-h,字元 c,以及一个或一串字元;
931 然後 Emacs 会显示一个非常简短的有关这个指令的解释。
932
933 >> 键入 C-h c C-p。讯息应该会像是:
934
935 C-p runs the command previous-line
936
937 这告诉了你「函数的名称」。函数名称主要是用来自订以及扩充 Emacs。
938 但是由於函数名称是由「用来指出这指令在做些什麽」而被选定,
939 它们因此也可以作为非常简短的文件 -- 足够提醒你已经学过的指令。
940
941 多字元指令像是 C-x C-s 和 (如果你没有 META 或 EDIT 或 ALT 键)
942 <ESC>v 也可以在 C-h c 後面出现。
943
944 要取得更多有关一个指令的信息,用 C-h k 来取代使用 C-h c。
945
946 >> 键入 C-h k C-p。
947
948 这会在一个 Emacs 窗格显示这个函数的说明文件以及它的名称。
949 当你阅读完後,键入 C-x 1 以跳离这些帮助文字。你并不需要马上跟着做。
950 你可以做些编辑,当参考到帮助文字时再键入 C-x 1。
951
952 这里有一些其他有用的 C-h 选项:
953
954 C-h f 解释一个函数。你要键入此函数的名称。
955
956 >> 试着键入 C-h f previous-line<Return>。
957 这会印出 Emacs 所有的有关「实作出 C-p 这个指令的函数」的信息
958
959 C-h v 这个类似的指令会显示出「你可以用来客户化 Emacs 行为的变数」
960 的文件。当 Emacs 要求时,你需要键入这变数的名称。
961
962 C-h a 指令相关查找(Command Apropos)。
963 键入一个关键字然後 Emacs 会列出所有
964 「在其名称中含有此关键字」的全部指令。
965 这些指令全部都可以经由 META-x 来启动。
966 对於一些指令而言,指令相关查找也会列出
967 「可以执行相同指令」的一个或两个字元的串列。
968
969 >> 键入 C-h a file<Return>。
970
971 这会在另一个窗格显示一个「在其名称中含有『file』的全部 M-x 指令」
972 的列表。你将会看到像是 C-x C-f 的「字元-指令」列在其相对应指令名称
973 (如:find-file)的旁边。
974
975 >> 键入 C-M-v 上下移动 help 窗格。试个几次。
976
977 >> 键入 C-x 1 来删除 help 窗格。
978
979 C-h i 阅读在线使用手册(a.k.a. Info)。
980 这个指令将你带到了称为「*info*」的特殊缓冲区,在那,
981 你可以阅读安装在你的系统里的软件包的在线使用手册。
982 键入 m emacs <Return> 以阅读 Emacs 使用手册。
983 如果你在此之前未曾使用过 Info 系统,请键入『?』。
984 Emacs 将会带你进入 Info 模式功能的导览指南。
985 一旦完成了本快速指南的研读,你应该查阅 Emacs Info
986 使用手册,以作为主要的参考文件。
987
988
989 * 结论(CONCLUSION)
990 --------------------
991
992 记住,要完全离开 Emacs 请使用 C-x C-c。
993 要暂时离开到 shell,稍後再回到 Emacs,请使用 C-z。
994
995 本快速指南对於所有的新手应该都是易於理解的,
996 所以如果你发现了什麽地方不清楚,不要只是坐着怪自己
997 --(向本文作者和翻译)发点牢骚吧!
998
999
1000 * 翻译(TRANSLATION)
1001 ---------------------
1002
1003 本快速指南的翻译人员列表如下,如果你在阅读本文之前,
1004 「完全」对 Emacs 没有概念,我们非常需要你的意见以作为改进的依据。
1005 我们也打算提供一份 Emacs 的导读(或整理到本快速指南),
1006 主要将会根据初学者阅读本使用指南所面临到的问题,撰写而成。
1007
1008 一个编辑器不应该让初学者感到十足的困难,你的意见可以使 Emacs
1009 更为贴近一般的使用者,并使电脑作为工具的角色得以充分发挥。
1010 如果你愿意提供改进的意见,请寄 email 到
1011 chinese-translators@gnu.org。请不要害羞,我们欢迎任何有关的讨论;
1012 如果你不想寄到邮件清单,请直接 email 给本文翻译 <chliu@gnu.org>。
1013 请在 Title 行中包含此字串「Emacs TUTORIAL: <your issue here>」。
1014
1015 如果你是 Emacs 老手,GNU Chinese Translators Team (GNU/CTT)
1016 <http://www.gnu.org/software/chinese/> 欢迎你的加入,
1017 我们现在正需要愿意投入翻译 Emacs 使用手册的人员。
1018
1019 本快速指南并没有采用习惯上编辑器所使用的翻译术语,
1020 一方面因为它的实际意义与一般的编辑器不同,原文本就不同;
1021 另一方面也因为 Emacs 所采用的视觉设计概念,
1022 早在视窗化系统之前就已经存在,本质也不相同。
1023 总之,翻译以为这样可以帮助对於 Emacs 整个设计哲学的理解。
1024 如果收到的回覆中,大部份要求提出修改,我们还是从善如流。
1025
1026 (1) 在本文中,「行」指的是 row,这是采用一般的习惯用法。
1027 为了避免误导中文读者,特别在此说明。在正式的用法中:
1028 「column」翻译为「行」,以「纵」为行(直行),也译为「栏」;
1029 「row」翻译为「列」,以「横」为列(横列)。
1030 读者思索一下「合纵连横」应该可以理解。
1031 大约是因为中文原本是直书的,我们说「一行字」是没问题;
1032 但现在大部份的情形中文是横书的,由於习惯使然也称为一行字了。
1033 (2) 有关於「文字」及其集合的相关译文,翻译所采用的有:
1034 编辑的「文字」:「然後键入一些文字」、
1035 用来作为说明功能的「文件」:「这个函数的说明文件」、
1036 特指其所说明内容的「文本」:「实际效力以英文本为准」。
1037 另外,即使只是「一行字」,只要它是用来作为说明之用,
1038 翻译还是将它视为「文件」。
1039 (3) 「cut」的动作在 Emacs 中分为「杀掉」和「删除」,之间的差异如下:
1040 一般编辑器中的「cut」:只有最近被 cut 的文字摆到 clipboard 中、
1041 「杀掉(killing)」:被杀掉的文字,全部被加入到 kill ring 中、
1042 「删除(deleting)」:被删除的文字,就是被删除了。
1043 因此在一般编辑器中,你只能 paste「最近」被 cut 的文字;
1044 而在 Emacs 中,你可以「拉回」任何先前被杀掉的文字,同时,
1045 它的作法很容易。至於被删除的,因为用来作为「删除」功能的指令,
1046 所能移去的文字数量都很少,因此也没什麽好拉回的;
1047 如果真的想回复这些文字,undo 你的动作就是了。
1048 (4) 「window」同时翻译为「视窗」和「窗格」,
1049 前者表示现在一般概念中的视窗系统,如「X 视窗」;
1050 後者表示 Emacs 中的视窗,翻译在此通称为「窗格」。
1051 Emacs 的「窗格」即使在命令列提示下也可以正常工作,
1052 此一基本特性显然值得我们以另一个专用术语来描述它。
1053 (5) 关於档案的术语,「找」一个档案在 Emacs 中有两种作用:
1054 找一个「并不存在」的档案,读者应认知为「开新档案」;
1055 找一个「已经存在」的档案,则是「开启旧档」。
1056 Emacs 只以一个「找」的动作来解决,主要的原因是「实际上」
1057 的软件工作如此。黑客们应该会发现这样比较自然,
1058 因为它反应了电脑的工作方式,同时操作起来也较少废话。
1059 (6) 在【】中的文字为翻译的注解。
1060 (7) 关於使中文文件结构化的议题,我们欢迎你送来相关的讨论;
1061 不知道是否有人可以直接提供一份修改自 Text 模式的 chinese-text
1062 主模式,问题马上解决。
1063
1064 另外,我们也十分欢迎读者可以直接修改本快速指南,
1065 做出自己的版本,以自己认为最为合适的方式来介绍 Emacs。
1066 如果你做出了这样个人化的版本,并且认为足供大家参考使用,
1067 请寄给 chinese-coordinators@gnu.org,
1068 我们会将你的版本公开在 GNU/CTT 的网页中提供给中文使用者下载。
1069
1070 翻译:刘 昭宏 <chliu@gnu.org>
1071 验证:马 雪萍
1072
1073
1074 * 复制(COPYING)
1075 -----------------
1076
1077 本快速指南沿袭自具有悠久历史的 Emacs 快速指南,由 Stuart Cracraft
1078 为了原始的 Emacs 所撰写的版本开始。
1079
1080 这个版本的快速指南和 GNU Emacs 一样都是版权化的,
1081 并且允许在某些条件下散布其拷贝:
1082
1083 Copyright (c) 1985, 1996, 2002 Free Software Foundation
1084 Chinese Translation by Chao-Hong Liu (2002)
1085
1086 Permission is granted to anyone to make or distribute verbatim copies
1087 of this document as received, in any medium, provided that the
1088 copyright notice and permission notice are preserved,
1089 and that the distributor grants the recipient permission
1090 for further redistribution as permitted by this notice.
1091
1092 本文允许在不变更文件内容的前提下刊登在任何形式的媒体中,
1093 但需保留版权声明以及许可声明,
1094 散布者也必须给予接受者如同此声明所允许的,进一步散布的许可。
1095 【本段译文提供读者作为参考以帮助理解,实际效力以英文本为准。】
1096
1097 Permission is granted to distribute modified versions
1098 of this document, or of portions of it,
1099 under the above conditions, provided also that they
1100 carry prominent notices stating who last altered them.
1101
1102 本文允许在与上述相同的条件下,散布修改後的版本,或是其中的一部份,
1103 但它们也必须带有显着的,说明由谁最後更动了它的声明。
1104 【Copyleft 版权除了提供使用者自由外,也维护原始作者,
1105 以及後来的修改作者的名誉权(credit)。
1106 本段译文提供读者作为参考以帮助理解,实际效力以英文本为准。】
1107
1108 复制 Emacs 本身的条件较为复杂,但是具有相同的精神。
1109 请阅读 COPYING 这个档案,并且确实给予你的朋友 GNU Emacs 的拷贝。
1110 请经由「使用、撰写、以及分享自由软件」来帮助消除软件障碍主义
1111 (拥有权)!
1112