aboutsummaryrefslogtreecommitdiffstats
path: root/etc/tutorials
diff options
context:
space:
mode:
authorXue Fuqiao2013-08-02 20:52:26 +0800
committerXue Fuqiao2013-08-02 20:52:26 +0800
commit26bb8a7ceb23a748e35afbc895b54e8c1322298f (patch)
treeffbd2ae757d332c344a8ffdf26d5cc87c778ab6b /etc/tutorials
parentb19aa6365305cb04efddaef3236ae1619a5e6a69 (diff)
downloademacs-26bb8a7ceb23a748e35afbc895b54e8c1322298f.tar.gz
emacs-26bb8a7ceb23a748e35afbc895b54e8c1322298f.zip
* tutorials/TUTORIAL.cn: Update; synchronize with TUTORIAL.
Diffstat (limited to 'etc/tutorials')
-rw-r--r--etc/tutorials/TUTORIAL.cn423
1 files changed, 220 insertions, 203 deletions
diff --git a/etc/tutorials/TUTORIAL.cn b/etc/tutorials/TUTORIAL.cn
index 7c02d06defa..faf049b0af3 100644
--- a/etc/tutorials/TUTORIAL.cn
+++ b/etc/tutorials/TUTORIAL.cn
@@ -14,8 +14,9 @@ META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写
14 先按一下 ESC 键然后放开,再输入 <chr>。我们用 <ESC> 来表示 14 先按一下 ESC 键然后放开,再输入 <chr>。我们用 <ESC> 来表示
15 ESC 键。 15 ESC 键。
16 16
17重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。下文中左边顶 17重要提示:要退出 Emacs,请用 C-x C-c(两个连续的组合键)。
18行的“>>”字样用来提示你尝试键盘命令。比如: 18要退出一个正在运行中的命令,请用 C-g。
19下文中左边顶行的“>>”字样用来提示你尝试键盘命令。比如:
19<<Blank lines inserted around following line by help-with-tutorial>> 20<<Blank lines inserted around following line by help-with-tutorial>>
20[本页当中特意留出一些空白是出于教学目的,请继续往后阅读] 21[本页当中特意留出一些空白是出于教学目的,请继续往后阅读]
21>> 现在输入 C-v (查看下一屏文字)移动到下一屏。 22>> 现在输入 C-v (查看下一屏文字)移动到下一屏。
@@ -43,7 +44,9 @@ META、EDIT 或 ALT 键那么就先按 <ESC> 再按 v)。
43 (注意是 CONTROL-L,不是 CONTROL-1) 44 (注意是 CONTROL-L,不是 CONTROL-1)
44 45
45>> 找到光标,留意其附近的文字,然后输入 C-l。 46>> 找到光标,留意其附近的文字,然后输入 C-l。
46 找找光标在哪里,你会发现其附近的文字并没有变化。 47 找找光标在哪里,你会发现其附近的文字与之前相同,位置却变为屏幕的中心。
48 如果你再次输入 C-l ,附近的文字将移动到屏幕的顶端。再次输入 C-l ,
49 文字将移动到底端。
47 50
48如果你的键盘上有 PageUp 和 PageDn,也可以用这两个键来滚屏。不过使用 51如果你的键盘上有 PageUp 和 PageDn,也可以用这两个键来滚屏。不过使用
49C-v 和 M-v 的效率要更高一些。 52C-v 和 M-v 的效率要更高一些。
@@ -78,8 +81,8 @@ P 代表 previous(上一行),N 代表 next(下一行),B 代表 backw
78>> 用 C-f 把光标移动到这一行,然后再用 C-p 往上挪。 81>> 用 C-f 把光标移动到这一行,然后再用 C-p 往上挪。
79 注意观察当光标在一行的中央时 C-p 命令的行为。 82 注意观察当光标在一行的中央时 C-p 命令的行为。
80 83
81每行文字都以一个“换行符”结束,“换行符”把行与行区分开来。文件 84每行文字都以一个“换行符”结束,“换行符”把行与行区分开来。下,
82有一个换行符 Emacs 不强制要求这一点 85文件的最有一个换行符 Emacs 不强制要求这一点。
83 86
84>> 在一行的行头输入 C-b。 87>> 在一行的行头输入 C-b。
85 光标应该会移动到前一行的行尾,因为光标在回退过程中越过了换行符。 88 光标应该会移动到前一行的行尾,因为光标在回退过程中越过了换行符。
@@ -179,27 +182,20 @@ EDIT 或 ALT)键,那么还有另一种办法:按住 META 键不放,然
179标志――只要给出有一个前缀参数,不管其值为何,它都会改变命令的功能。 182标志――只要给出有一个前缀参数,不管其值为何,它都会改变命令的功能。
180 183
181而 C-v 和 M-v 则属于另一种类型的例外。当给定一个参数时,它们将滚动你指 184而 C-v 和 M-v 则属于另一种类型的例外。当给定一个参数时,它们将滚动你指
182定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v 将屏幕向下滚动 8 行, 185定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v 将文本向下滚动 8 行。
183而不是 8 屏。
184 186
185>> 现在试试看,输入 C-u 8 C-v。 187>> 现在试试看,输入 C-u 8 C-v。
186 188
187这个命令应该已经将文字向上滚动了 8 行。如果你想将它再次地向下滚动,你可 189这个命令应该已经将文字向上滚动了 8 行。如果你想将它再次地向下滚动,你可
188以给定一个参数然后执行 M-v。 190以给定一个参数然后执行 M-v。
189 191
190如果你正在使用一个窗,比如 X11 或者微软的 Windows,那么在 Emacs 192如果你正在使用,比如 X 或者微软的 Windows,那么在 Emacs
191口的边应该有一个长方形的区域叫“滚动条”你可以用鼠标操纵滚动条来 193口的边应该有一个长方形的区域叫“滚动条”你可以用鼠标操纵滚动条来滚动
192字。 194文字。
193 195
194>> 试着在“滚动条内的反白区域”上按一下鼠标中键。 196如果你的鼠标有滚轮的话,你也可以使用滚轮来滚动。
195 文字应该会滚动到鼠标所指示的位置。
196 197
197>> 当按住中键时,试着将鼠标上下移动。 198* 如果 EMACS 失去响应(IF EMACS STOPS RESPONDING)
198 你会看到文字随着鼠标的移动而上下滚动。
199 【Windows 版本符合 Windows 程序的传统操作习惯,上述操作不适用。】
200
201
202* 在 EMACS 失去响应的时候(WHEN EMACS IS HUNG)
203----------------------------------------------- 199-----------------------------------------------
204 200
205如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g 201如果 Emacs 对你的命令失去响应,你可以用 C-g 来安全地终止这条命令。C-g
@@ -234,7 +230,7 @@ C-g 还可以取消数字参数和只输入到一半的命令。
234* 窗格(WINDOWS) 230* 窗格(WINDOWS)
235----------------- 231-----------------
236 232
237Emacs 可以有多个窗格,每个窗格显示不同的文字。后面会介绍怎么对付多个窗 233Emacs 可以有多个窗格,每个窗格显示不同的文字。后面会介绍怎么对付多个窗
238格,现在我们先学会如何关掉多余的窗格。其实也很简单: 234格,现在我们先学会如何关掉多余的窗格。其实也很简单:
239 235
240 C-x 1 只保留一个窗格(也就是关掉其它所有窗格)。 236 C-x 1 只保留一个窗格(也就是关掉其它所有窗格)。
@@ -244,49 +240,46 @@ Emacs 可以有多个窗格,每个窗格显示不同的文字。后面会介
244 240
245>> 把光标移到本行然后输入 C-u 0 C-l。 241>> 把光标移到本行然后输入 C-u 0 C-l。
246 242
247>> 输入 CONTROL-h k CONTROL-f。观察当一个新窗格出现时当前窗格(用来显示 243>> 输入 C-h k C-f。观察当一个新窗格出现时当前窗格(用来显示
248 CONTROL-f 命令的文档)是如何缩小的。 244 C-f 命令的文档)是如何缩小的。
249 245
250>> 输入 C-x 1 关掉文档窗格。 246>> 输入 C-x 1 关掉文档窗格。
251 247
252这个命令跟先前学过的命令不太一样,因为它包含了两个字符,以 CONTROL-x 开 248有一系列命令是以 CONTROL-x 开始的,这些命令许多都跟“窗格、文件、缓冲区
253始。有一系列命令都是以 CONTROL-x 开始的,这些命令许多都跟“窗格、文件、 249【缓冲区(buffer)会在后文详细介绍】”等等诸如此类的东西有关,其中有些
254缓冲区【缓冲区(buffer)会在后文详细介绍】”等等诸如此类的东西有关,其 250命令可能包含了 2 个、3 个或者 4 个字符。
255中有些命令可能包含了 2 个、3 个或者 4 个字符。
256 251
257 252
258* 插入与删除(INSERTING AND DELETING) 253* 插入与删除(INSERTING AND DELETING)
259-------------------------------------- 254--------------------------------------
260 255
261插入文字很简单,直接敲键盘就可以了。你能看到的字符,比如 A、7、* 等等, 256插入文字很简单,直接敲键盘就可以了。普通的字符,比如 A、7、* 等等,会
262都被 Emacs 视为文字并且可以直接插入。敲 <Return>(回车键)会插入一个换 257随着你的输入而插入。要插入一个换行符,输入 <Return>(这个键在键盘上有
263行符。 258时会被标注成“Enter”)。
264
265你可以用 <Delback> 来删除最后输入的一个字符,这个跟你在 Emacs 之外的用
266法应该一样。一般来说 <Delback> 就是位于 <Return> 键上方某处的一个大块头
267的键,通常被标示为“Delete”、“Del”或者“Backspace”。
268 259
269如果你找“Backspace”键,那么它应该就是 <Delback>;这时哪你又在别 260可以用 <DEL> 删除标左符,这键通常被标注“Backspace”―跟
270个“Del”键应该是 <Delback> 261 Emacs 外的用除最输入的字符
271 262
272说法,<Delback> 一个字符 263能有另外一个键标注着 <Delete>是我 <DEL>
273 264
274>> 现在就来试试――敲点字,然后按几下 <Delback> 删除它们。 265>> 现在就来试试――敲点字,然后按几下 <DEL> 删除它们。
275 不用担心文件被修改,你做什么都没关系,这里就是专给你练习用的。 266 不用担心文件被修改,你做什么都没关系,这里就是专给你练习用的。
276 267
277如果一行文字很长、超出了窗格的宽度,显示不下的部分会在紧邻的下一行继续 268如果一行文字很长、超出了窗格的宽度,显示不下的部分会在紧邻的下一行继续
278显示。这时会有一个反斜线(在控制台下是反斜线,如果你用图形窗口系统,则 269显示。如果你使用的是图形界面,文本区域两边的狭窄区域(左右“边缘”)会出
279应该是一个小小的转弯箭头)显示在右边沿,表明这是某一行的接续显示。 270现小小的转弯箭头,表明这是某一行的接续显示。如果你使用的是文本终端,接
271续显示由屏幕最右边一列的一个反斜线来表示。
280 272
281>> 输入文字,一直到屏幕的右边界,然后继续,你会看到一个接续行出现。 273>> 输入文字,一直到屏幕的右边界,然后继续。
274你会看到一个接续行出现。
282 275
283>> 用 <Delback> 删掉一些文字,直到此行长度小于窗格宽度,接续行就消失了。 276>> 用 <DEL> 删掉一些文字,直到此行长度小于窗格宽度,接续行就消失了。
284 277
285换行符跟其它字符一样可以被删除。两行中间的换行符被删除后,这两行将会合 278换行符跟其它字符一样可以被删除。两行中间的换行符被删除后,这两行将会合
286并成一行。如果合并后的这一行太长,超出了窗格宽度,它就会以一个接续行来 279并成一行。如果合并后的这一行太长,超出了窗格宽度,它就会以一个接续行来
287显示。 280显示。
288 281
289>> 移动光标到某行的开头并输入 <Delback>。 282>> 移动光标到某行的开头并输入 <DEL>。
290 这时该行将与其前一行一起被合并为一行。 283 这时该行将与其前一行一起被合并为一行。
291 284
292>> 输入 <Return> 重新插入你刚才删除的换行符。 285>> 输入 <Return> 重新插入你刚才删除的换行符。
@@ -299,10 +292,10 @@ Emacs 可以有多个窗格,每个窗格显示不同的文字。后面会介
299好,现在你应该已经掌握了最基本的的文本插入和修改功能,其实删除还可以 292好,现在你应该已经掌握了最基本的的文本插入和修改功能,其实删除还可以
300“以词为单位”进行,下面是一个关于“删除”操作的小结: 293“以词为单位”进行,下面是一个关于“删除”操作的小结:
301 294
302 <Delback> 删除光标前的一个字符 295 <DEL> 删除光标前的一个字符
303 C-d 删除光标后的一个字符 296 C-d 删除光标后的一个字符
304 297
305 M-<Delback> 移除光标前的一个词 298 M-<DEL> 移除光标前的一个词
306 M-d 移除光标后的一个词 299 M-d 移除光标后的一个词
307 300
308 C-k 移除从光标到“行尾”间的字符 301 C-k 移除从光标到“行尾”间的字符
@@ -311,29 +304,31 @@ Emacs 可以有多个窗格,每个窗格显示不同的文字。后面会介
311【可能你已经注意到了“删除(delete)”和“移除(kill)”的用词区别,后 304【可能你已经注意到了“删除(delete)”和“移除(kill)”的用词区别,后
312文会有详细说明。】 305文会有详细说明。】
313 306
314注意“<Delback> 和 C-d”还有“M-<Delback> 和 M-d”是根据前述惯例从 C-f 307注意“<DEL> 和 C-d”还有“M-<DEL> 和 M-d”是根据前述惯例从 C-f和 M-f 衍生
315和 M-f 衍生出来的(其实<Delback>不是控制字符,我们先忽略这一点)。C-k 308出来的(其实<DEL>不是控制字符,我们先忽略这一点)。C-k和 M-k 的关系在
316和 M-k 的关系在某种程度上与 C-e 和 M-e 一样――如果把“一行”和“一句” 309某种程度上与 C-e 和 M-e 一样――如果把“一行”和“一句”作一个类比的话。
317作一个类比的话。
318 310
319你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你 311你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你
320想要移除的区域的一端,然后按 C-@ 或 C-SPC(任一即可,SPC指空格)【注意, 312想要移除的区域的一端,然后按 C-<SPC>(<SPC>指空格)【注意,C-<SPC> 往
321C-SPC 往往被中文用户设定成输入法热键,如果这样,C-SPC 就被系统拦截而无 313往被中文用户设定成输入法热键,如果这样,C-<SPC> 就被系统拦截而无法传递
322法传递给 Emacs 了,因此这里还是推荐使用C-@。】,然后将光标移动到另一端, 314给 Emacs 了,在这种情况下可以使用C-@。】,然后将光标移动到你准备移除的
323再按 C-w 就可以把位于这两点之间的所有文字移除了。 315文字的另一端。这个时候, Emacs 会高亮光标和你按下 C-<SPC> 之间的文本。
316最后,按下 C-w 。这样就可以把位于这两点之间的所有文字移除了。
324 317
325>> 移动光标到上一段开头的“你”字。 318>> 移动光标到上一段开头的“你”字。
326>> 输入 C-@ 。Emacs 应该会在屏幕的下方显示一个“Mark set”的消息。 319>> 输入 C-<SPC> 。Emacs 应该会在屏幕的下方显示一个“Mark set”的消息。
327>> 移动光标到第二行中的“端”字。 320>> 移动光标到第二行中的“端”字。
328>> 输入 C-w,从“你”开始到“端”之前的文字被全部移除。 321>> 输入 C-w,从“你”开始到“端”之前的文字被全部移除。
329 322
330注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以找回 323注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以被重新
331来,而被删除的就不行了。【实际上,移除掉的东西虽然看起来“消失”了,但 324插入(在任何位置),而被删除的就不能使用相同的方法重新插入了(不过可以
332实际上被 Emacs 记录了下来,因此还可以找回来;而删除掉的东西虽然也可能还 325通过撤销一个删除命令来做到,后文会提到)。【实际上,移除掉的东西虽然看
333在内存里,但是已经被 Emacs“抛弃”了,所以就找不回来了。】重新插入被移 326起来“消失”了,但实际上被 Emacs 记录了下来,因此还可以找回来;而删除掉
334除的文字称为“召回(yank)”。一般而言,那些可能消除很多文字的命令会把 327的东西虽然也可能还在内存里,但是已经被 Emacs“抛弃”了,所以就找不回来
335消除掉的文字记录下来(它们被设定成了“可召回”),而那些只消除一个字符 328了。】重新插入被移除的文字称为“召回(yank)”。一般而言,那些可能消除很
336或者只消除空白的命令就不会记录被消除的内容(自然你也就无法召回了)。 329多文字的命令会把消除掉的文字记录下来(它们被设定成了“可召回”),而那些
330只消除一个字符或者只消除空白的命令就不会记录被消除的内容(自然你也就无
331法召回了)。
337 332
338>> 移动光标到一非空白行的行头,然后输入 C-k 移除那一行上的文字。 333>> 移动光标到一非空白行的行头,然后输入 C-k 移除那一行上的文字。
339 334
@@ -345,9 +340,10 @@ C-SPC 往往被中文用户设定成输入法热键,如果这样,C-SPC 就
345C-k 会把两行以及它们的换行符移除;而如果只是输入 C-k 两次显然不是这个结 340C-k 会把两行以及它们的换行符移除;而如果只是输入 C-k 两次显然不是这个结
346果。 341果。
347 342
348被移除的文字恢复的动作称为“召回(yanking)”。(就好像把别人从你身边 343插入被移除的文字恢复的动作称为“召回(yanking)”。(就好像把别人从你身边
349移走的东西又猛力地拉回来。)你可以在你删除文字的地方召回,也可以在别的 344移走的东西又猛力地拉回来。)你可以在你删除文字的地方召回,也可以在别的
350地方召回,还可以多次召回同样的文字以得到它的多个拷贝。 345地方召回,还可以多次召回同样的文字以得到它的多个拷贝。很多其它的编辑器
346把移除和召回叫做“剪切”和“粘贴” (详情可见 Emacs 使用手册里的术语表)。
351 347
352召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。 348召回的命令是 C-y。它会在光标所在处插入你最后移除的文字。
353 349
@@ -383,24 +379,23 @@ C-y 可以召回最近一次移除的内容,那如何召回前几次移除的
383* 撤销(UNDO) 379* 撤销(UNDO)
384-------------- 380--------------
385 381
386如果你修改了一段文字,又觉得改得不好,可以用 undo 命令进行撤销: 382如果你修改了一段文字,又觉得改得不好,可以用 undo 命令进行撤销:C-/。
387C-x u。
388 383
389通常 C-x u 会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用 384通常 C-/ 会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用
390C-x u,你会把以前的命令也依次撤销。 385C-/,你会把以前的命令也依次撤销。
391 386
392但是有两个例外: 387但是有两个例外:
3931) 没有改变文字的命令不算(包括光标移动命令和滚动命令) 3881) 没有改变文字的命令不算(包括光标移动命令和滚动命令)
3942) 从键盘输入的字符以组为单位――每组 20 个字符――来进行处理。 3892) 从键盘输入的字符以组为单位――每组最多 20 个字符――来进行处理。
395 (这是为了减少你在撤销“插入文字”动作时需要输入 C-x u 的次数) 390 (这是为了减少你在撤销“插入文字”动作时需要输入 C-/ 的次数)
396 391
397>> 用 C-k 将这一行移除,然后输入 C-x u ,它会再次出现。 392>> 用 C-k 将这一行移除,然后输入 C-/ ,它会再次出现。
398 393
399C-_ 也是撤销命令;它的作用跟 C-x u 一样,但是它比较容易多次输入。C-_ 的 394C-_ 也是撤销命令;它的作用跟 C-/ 一样,但是它比较容易多次输入。
400缺点太容易按也正是我们同时提 C-x u原因 395某些 C-/ 实际上向 Emacs 发送是 C-_
401某些终端上 CONTROL “/”输入 C-_ 396另外 C-x u C-/ 全一样,有些麻烦
402 397
403数字参数对于 C-_ 和 C-x u 的意义是执行撤销的重复次数。 398数字参数对于 C-/ 、 C-_ 和 C-x u 的意义是执行撤销的重复次数。
404 399
405 400
406* 文件(FILE) 401* 文件(FILE)
@@ -416,14 +411,13 @@ C-_ 也是撤销命令;它的作用跟 C-x u 一样,但是它比较容易多
416文件也保存到计算机上。在存盘的时候,Emacs 会把存盘前的文件重命名保存, 411文件也保存到计算机上。在存盘的时候,Emacs 会把存盘前的文件重命名保存,
417以防你改完之后又想反悔。 412以防你改完之后又想反悔。
418 413
419在屏幕的下方,你应该能够看到头短线“-”的一行,行首通常是一些诸如 414在屏幕的下方,你应该能够看到头短线“-”的一行,行首通常是一些诸如
420--:-- TUTORIAL.cn”的文字,这些文字代表了你当前正在访问的文件。比如你 415-:--- TUTORIAL.cn”的文字,这些文字代表了你当前正在访问的文件。比如你
421在正在访问的文件“TUTORIAL.cn只是临时使用的拷贝。每当 416在正在访问的文件 Emacs 快一份临时拷贝,叫做“TUTORIAL.cn”
422Emacs 寻找到一个文件,文件名就会出现在这个位置。 417每当Emacs 寻找到一个文件,文件名就会出现在这个位置。
423 418
424寻找文件的命令有一个特点,那就是你必须给出文件名。我们称这个命令“从终 419寻找文件的命令有一个特点,那就是你必须给出文件名。我们称这个命令“读入
425端读入了一个参数”(在这里,这个参数显然就是文件名)。在你输入这条命令 420了一个参数”(在这里,这个参数显然就是文件名)。在你输入这条命令之后:
426之后:
427 421
428 C-x C-f 寻找一个文件 422 C-x C-f 寻找一个文件
429 423
@@ -437,10 +431,10 @@ Emacs 会提示你输入文件名。你输入的文件名会出现在屏幕最
437 这会关掉小缓冲,同时也会取消使用小缓冲的 C-x C-f 命令。 431 这会关掉小缓冲,同时也会取消使用小缓冲的 C-x C-f 命令。
438 当然了,你也没有找任何文件。 432 当然了,你也没有找任何文件。
439 433
440用 <Return> 结束文件名的输入。之后 C-x C-f 作并指定的 434用 <Return> 结束文件名的输入。之后,小缓冲会消失,C-x C-f 找你
441文件。小缓冲在 C-x C-f 命令结束之后也会消失。 435定的件。小缓冲在 C-x C-f 命令结束之后也会消失。
442 436
443眨眼间文件被显示在屏幕上,你可以开始编辑了。存盘用这条命令: 437文件被显示在屏幕上,你可以开始编辑了。存盘用这条命令:
444 438
445 C-x C-s 储存这个文件 439 C-x C-s 储存这个文件
446 440
@@ -450,15 +444,16 @@ Emacs 会提示你输入文件名。你输入的文件名会出现在屏幕最
450 M-x customize-variable <Return> make-backup-files <Return>】 444 M-x customize-variable <Return> make-backup-files <Return>】
451 445
452存盘结束后,Emacs 会显示写入文件的文件名。你最好养成经常存盘的习惯,这 446存盘结束后,Emacs 会显示写入文件的文件名。你最好养成经常存盘的习惯,这
453可以减少系统崩溃和死机给你带来的损失。 447可以减少系统崩溃和死机给你带来的损失(也可参见下面的“自动保存”一节)
454 448
455>> 输入 C-x C-s 把本快速指南存下来。 449>> 输入 C-x C-s TUTORIAL.cn <Return> 。
456 你会在屏幕的下方看到一条消息:“Wrote ...TUTORIAL.cn”。 450 这将会把该指南保存为一个名为 TUTORIAL.cn 的文件,并且在屏幕的下方显
451 示一条消息:“Wrote ...TUTORIAL.cn”。
457 452
458你不但可以寻找一个已有的文件来查看或编辑,还可以寻找一个不存在的文件。 453你不但可以寻找一个已有的文件来查看或编辑,还可以寻找一个不存在的文件。
459实际上这正是 Emacs 创建新文件的方法:找到不存在的新文件。只有在存盘的时 454实际上这正是 Emacs 创建新文件的方法:找到不存在的新文件。上,
460候,Emacs 才会真正创建这个文件。而在这之后的一切就跟编辑一个已有文件没 455存盘的时,Emacs 才会真正创建这个文件。而在这之后的一切就跟编辑一个
461有区别了。 456文件没有区别了。
462 457
463 458
464* 缓冲区(BUFFER) 459* 缓冲区(BUFFER)
@@ -468,10 +463,6 @@ Emacs 会提示你输入文件名。你输入的文件名会出现在屏幕最
468切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中同 463切回第一个文件,一种办法是再用一次 C-x C-f。这样,你就可以在 Emacs 中同
469时打开多个文件。 464时打开多个文件。
470 465
471>> 用 C-x C-f foo <Return> 的方式建立一个名为“foo”的文件。
472 输入一些文字,再用 C-x C-s 保存文件“foo”。
473 最后,输入 C-x C-f TUTORIAL.cn <Return> 回到这里。
474
475Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每寻 466Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)”的地方。每寻
476找到一个文件,Emacs 就在其内部开辟一个缓冲区。用下面的命令可以列出当前 467找到一个文件,Emacs 就在其内部开辟一个缓冲区。用下面的命令可以列出当前
477所有的缓冲区: 468所有的缓冲区:
@@ -490,24 +481,28 @@ Emacs 把每个编辑中的文件都放在一个称为“缓冲区(buffer)
490C-x C-f 是一种办法。不过还有一个更简单的办法,那就是用 C-x b。用这条命 481C-x C-f 是一种办法。不过还有一个更简单的办法,那就是用 C-x b。用这条命
491令,你必须输入缓冲区的名称。 482令,你必须输入缓冲区的名称。
492 483
493>> 输入 C-x b foo <Return> “foo”的缓冲区 484>> 入 C-x C-f foo <Return> 一个名为“foo”的文件
494 然后输入 C-x b TUTORIAL.cn <Return> 回到这里。 485 然后输入 C-x b TUTORIAL.cn <Return> 回到这里。
495 486
496大多数情况下,缓冲区与跟其对应的文件是同名的(不包括目录名),不过这也 487大多数情况下,缓冲区与跟其对应的文件是同名的(不包括目录名),不过这也
497不是绝对的。用 C-x C-b 得到的缓冲区列表总是显示缓冲区名。 488不是绝对的。用 C-x C-b 得到的缓冲区列表总是显示缓冲区名。
498 489
499你在 Emacs 窗格里看到的“任何”文字都一定属于某个缓冲区。然而,缓冲区未 490缓冲区未必有对应文件。显示缓冲区列表的缓冲区(叫做“*Buffer List*”)就
500必有对应文件:比如显示缓冲区列表的缓冲区就是这样。再比如“*Messages*” 491是这样。这个 TUTORIAL.cn 缓冲区起初没有对应的文件,但是现在有了,因为
501缓冲区也没有对应文件,这个缓冲区里存放的都是在 Emacs 底部出现的消息。 492在前一节你输入了 C-x C-s , 将它保存成了一个文件。
493
494“*Messages*”缓冲区也没有对应文件,这个缓冲区里存放的都是在 Emacs 底部
495出现的消息。
502 496
503>> 输入 C-x b *Messages* <Return> 瞅瞅消息缓冲区里都有什么东西。 497>> 输入 C-x b *Messages* <Return> 瞅瞅消息缓冲区里都有什么东西。
504 然后再输入 C-x b TUTORIAL.cn <Return> 回到这里。 498 然后再输入 C-x b TUTORIAL.cn <Return> 回到这里。
505 499
506如果你对某个文件做了些修改,然后切换到另一个文件,这个动作并不会帮你把 500如果你对某个文件做了些修改,然后切换到另一个文件,这个动作并不会帮你把
507前一个文件存盘。对第一个文件的修改仍然仅存在于 Emacs 中,也就是在它对应 501前一个文件存盘。对第一个文件的修改仍然仅存在于 Emacs 中,也就是在它对
508的缓冲区里。并且,对第二个文件的修改也不会影响到第一个文件。这很有用, 502应的缓冲区里。并且,对第二个文件的修改也不会影响到第一个文件。这很有用,
509但是也挺麻烦:因为如果你想要存储第一个文件,还需要先 C-x C-f 切换回去再 503但也意味着你需要一个简便的办法来保存第一个文件的缓冲区。先切换回那个缓
510用 C-x C-s 存盘。你需要一个更简便的方法,而 Emacs 已经为你准备好了: 504冲区,再用 C-x C-s 存盘,太麻烦了。你需要一个更简便的方法,而 Emacs 已
505经为你准备好了:
511 506
512 C-x s 保存多个缓冲区 507 C-x s 保存多个缓冲区
513 508
@@ -532,21 +527,18 @@ Emacs 的命令就像天上的星星,数也数不清。把它们都对应到 C
532很多扩展命令都相当有用,虽然与你已经学过的命令比起来,他们可能不那么常 527很多扩展命令都相当有用,虽然与你已经学过的命令比起来,他们可能不那么常
533用。我们早已经见过一些扩展命令了,比如用 C-x C-f 寻找文件和用 C-x C-s 528用。我们早已经见过一些扩展命令了,比如用 C-x C-f 寻找文件和用 C-x C-s
534保存文件;退出 Emacs 用的 C-x C-c 也是扩展命令。(不用担心退出 Emacs 会 529保存文件;退出 Emacs 用的 C-x C-c 也是扩展命令。(不用担心退出 Emacs 会
535给你带来什么损失,Emacs 会在退出之前提醒你存盘的) 530给你带来什么损失,Emacs 会在退出之前提醒你存盘的
536 531
537在控制台下,C-z 可以暂时离开 Emacs――当然,你还可以再回来。 532如果你使用图形界面,你不需要任何特殊的命令来切换 Emacs 和其他应用程序。
533你可以使用鼠标或者窗口管理器的命令。然而,如果你使用只能同时显示一个应
534用程序的文本终端,你需要“挂起” Emacs ,以切换到其他的应用程序。
538 535
539在允许 C-z 的系统中,C-z 会把 Emacs“挂起”,也就是说,它会回到 shell 536C-z 以暂时离开 Emacs――当然,你还可以再回来。允许 C-z 的系统中,C-z
540不退出 Emacs shell ,通常可用“fg”“%emacs 537 Emacs起”,也是说,回到 shell死 Emacs 的进程
541次回到 Emacs 中。 538用的 shell 中,通常可以用“fg”者“%emacs”命令再回到 Emacs 中。
542 539
543在没有提供挂起功能的系统中,C-z 会在 Emacs 之下创建一个子 shell 来让你 540你最好在打算退出登陆的时候再用 C-x C-c。在把 Emacs 当做一个临时的编辑
544运行其它程序,并且再次“回到”Emacs 中――虽然我们并没有真正离开过。这 541器的时候(比如被一个邮件处理程序调用),也可以用 C-x C-c 退出。
545种情况下,通常用 shell 命令“exit”从子 shell 回到 Emacs。
546
547你最好在打算退出登陆的时候再用 C-x C-c。在 Emacs 被诸如邮件处理程序之类
548的外部程序调用之后,也可以用 C-x C-c 退出。不过一般来讲,如果你不想退出
549登录,最好还是把 Emacs 挂起而不是退出。
550 542
551C-x 的扩展命令有很多,下面列出的是你已经学过的: 543C-x 的扩展命令有很多,下面列出的是你已经学过的:
552 544
@@ -557,11 +549,11 @@ C-x 的扩展命令有很多,下面列出的是你已经学过的:
557 C-x 1 关掉其它所有窗格,只保留一个。 549 C-x 1 关掉其它所有窗格,只保留一个。
558 C-x u 撤销。 550 C-x u 撤销。
559 551
560用命令名扩展的命令通常并不常用,或只用在部分模式下。比如 replace-string 552用命令名扩展的命令通常并不常用,或只用在部分模式下。比如
561(字符串替换)这个命令,它会在全范围内一个字符串替换成另一个。在 553replace-string(字符串替换)这个命令,它会把一个字符串替换成另一个。在
562入 M-x 之后,Emacs 会在屏幕底端向你询问并等待你输入命令名。如果你想输入 554入 M-x 之后,Emacs 会在屏幕底端向你询问并等待你输入命令名。如果你想
563“replace-string”,其实只需要敲“repl s<TAB>”就行了,Emacs 会帮你自 555输入“replace-string”,其实只需要敲“repl s<TAB>”就行了,Emacs 会帮你自
564补齐。输入完之后按 <Return> 。 556补齐。输入完之后按 <Return> 提交
565 557
566字符串替换命令需要两个参数――被替换的字符串和用来替换它的字符串。每个 558字符串替换命令需要两个参数――被替换的字符串和用来替换它的字符串。每个
567参数的输入都以换行符来结束。 559参数的输入都以换行符来结束。
@@ -586,8 +578,8 @@ C-x 的扩展命令有很多,下面列出的是你已经学过的:
586“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。 578“#hello.c#”。这个文件会在正常存盘之后被 Emacs 删除。
587 579
588所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保 580所以,假如不幸真的发生了,你大可以从容地打开原来的文件(注意不是自动保
589存文件)然后输入 M-x recover file<Return> 来恢复你的自动保存文件。在 581存文件)然后输入 M-x recover file <Return> 来恢复你的自动保存文件。在
590示确认的时候,输入 yes<Return>。 582示确认的时候,输入 yes<Return>。
591 583
592 584
593* 回显区(ECHO AREA) 585* 回显区(ECHO AREA)
@@ -602,7 +594,7 @@ C-x 的扩展命令有很多,下面列出的是你已经学过的:
602 594
603位于回显区正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如: 595位于回显区正上方的一行被称为“状态栏”。状态栏上会显示一些信息,比如:
604 596
605--:** TUTORIAL.cn (Fundamental)--L670--54%---------------- 597 -:**- TUTORIAL.cn 63% L749 (Fundamental)
606 598
607状态栏显示了 Emacs 的状态和你正在编辑的文字的一些信息。 599状态栏显示了 Emacs 的状态和你正在编辑的文字的一些信息。
608 600
@@ -631,7 +623,7 @@ Emacs 的主模式林林总总。有用来编辑程序代码的――比如 Lisp
631 623
632编辑自然语言文本――比如现在――应该用 Text 模式。 624编辑自然语言文本――比如现在――应该用 Text 模式。
633 625
634>> 输入 M-x text mode<Return>。 626>> 输入 M-x text-mode <Return>。
635 627
636别担心,什么都没变。不过细心一些可以发现,M-f 和 M-b 现在把单引号(') 628别担心,什么都没变。不过细心一些可以发现,M-f 和 M-b 现在把单引号(')
637视为词的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都将单引号 629视为词的一部分了。而在先前的 Fundamental 模式中,M-f 和 M-b 都将单引号
@@ -643,7 +635,8 @@ Emacs 里得到了很好的体现】
643 635
644用 C-h m 可以查看当前主模式的文档。 636用 C-h m 可以查看当前主模式的文档。
645 637
646>> 用 C-u C-v 将本行带到屏幕的最上方。 638>> 把光标移动到下一行。
639>> 用 C-l C-l 将本行带到屏幕的最上方。
647>> 输入 C-h m,看看 Text 模式与 Fundamental 模式有哪些不同。 640>> 输入 C-h m,看看 Text 模式与 Fundamental 模式有哪些不同。
648>> 输入 C-x 1 关掉文档窗格。 641>> 输入 C-x 1 关掉文档窗格。
649 642
@@ -655,12 +648,12 @@ mode)存在。辅模式并不能替代主模式,而是提供一些辅助的
655有一个叫做自动折行(Auto Fill)的辅模式很有用,特别是在编辑自然语言文本 648有一个叫做自动折行(Auto Fill)的辅模式很有用,特别是在编辑自然语言文本
656的时候。启用自动折行后,Emacs 会在你打字超出一行边界时自动替你换行。 649的时候。启用自动折行后,Emacs 会在你打字超出一行边界时自动替你换行。
657 650
658用 M-x auto fill mode<Return> 启动自动折行模式。再用一次这条命令,自 651用 M-x auto-fill-mode <Return> 启动自动折行模式。再用一次这条命令,自
659折行模式会被关闭。也就是说,如果自动折行模式没有被开启,这个命令会开 652折行模式会被关闭。也就是说,如果自动折行模式没有被开启,这个命令会开
660它;如果已经开启了,这个命令会关闭它。所以我们说,这个命令可以用来“开 653;如果已经开启了,这个命令会关闭它。所以我们说,这个命令可以用来
661关(toggle)”模式。 654(toggle)”模式。
662 655
663>> 现在输入 M-x auto fill mode<Return>。然后随便敲点什么,直到你看到它 656>> 现在输入 M-x auto-fill-mode <Return>。然后随便敲点什么,直到你看到它
664 分成两行。你必须敲一些空格,因为 Auto Fill 只在空白处进行断行。 657 分成两行。你必须敲一些空格,因为 Auto Fill 只在空白处进行断行。
665 【输入空格对英文来说是必须的,而对中文则不必。】 658 【输入空格对英文来说是必须的,而对中文则不必。】
666 659
@@ -680,12 +673,11 @@ mode)存在。辅模式并不能替代主模式,而是提供一些辅助的
680* 搜索(SEARCHING) 673* 搜索(SEARCHING)
681------------------- 674-------------------
682 675
683Emacs 可以向前或向后搜索字符串是一动光标搜索 676Emacs 可以向前或向后搜索字符串搜索
684后,光标会停留在搜索目标出现的地方。 677令是一个移光标的命令:索成功,光标会停留在搜索目标出现的地方。
685 678
686Emacs 的搜索命令的独特之处在于,它是“渐进的(incremental)”。意思是搜 679Emacs 的搜索命令是“渐进的(incremental)”。意思是搜索与输入同时进行:
687索与输入同时进行:你在键盘上一字一句地输入搜索词的过程中,Emacs 就已经 680你在键盘上一字一句地输入搜索词的过程中,Emacs 就已经开始替你搜索了。
688开始替你搜索了。
689 681
690C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试。 682C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试。
691 683
@@ -696,7 +688,7 @@ C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试
696 慢慢输入“cursor”这个词,每敲一个字都停顿一下并观察光标。 688 慢慢输入“cursor”这个词,每敲一个字都停顿一下并观察光标。
697 现在你应该已曾经找到“cursor”这个词了。 689 现在你应该已曾经找到“cursor”这个词了。
698>> 再按一次 C-s,搜索下一个“cursor”出现的位置。 690>> 再按一次 C-s,搜索下一个“cursor”出现的位置。
699>> 现在按四次退格键,看看光标是如何移动的。 691>> 现在按四次 <DEL> ,看看光标是如何移动的。
700>> 敲 <Return> 结束搜索。 692>> 敲 <Return> 结束搜索。
701 693
702看仔细了么?在一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要 694看仔细了么?在一次渐进式搜索中,Emacs 会尝试跳到搜索目标出现的位置。要
@@ -705,19 +697,14 @@ C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试
705现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上, 697现 C-g 会让光标回到搜索开始的位置,而 <Return> 则让光标留在搜索结果上,
706这是很有用的功能。】 698这是很有用的功能。】
707 699
708注意:在某些终端下,输入 C-x C-s 会冻结屏幕【屏幕没有任何输出】,使你看 700在渐进式搜索中,按 <DEL> 会“撤回”到最近一次搜索的命中位置。如果之前没
709不到 Emacs 的任何变化。其原因是操作系统的“流量控制”功能拦截了 C-s 并 701有一个命中, <DEL> 会抹去搜索字符串中的最后一个字符。比如你已经输入了
710冻结了屏幕。用 C-q 可以解除屏幕冻结。要解决这个问题,请参考 Emacs 手册 702“c”,光标就停在“c”第一次出现的位置,再输入“u”,光标停在“cu”第一次出现
711里的“Spontaneous Entry to Incremental Search”一节【Emacs 手册可能还没 703的位置,这时再按 <DEL> ,“u”就从搜索字串中消失了,然后光标会回到“c”第
712有中文翻译】,那里提供了一些有用的建议。 704一次出现的位置。
713
714在渐进式搜索中,按退格键会删除目标字符串的最后一个字符,并且光标会回到
715最近一次搜索的命中位置。比如你已经输入了“c”,光标就停在“c”第一次出
716现的位置,再输入“u”,光标停在“cu”第一次出现的位置,这时再按退格键,
717“u”就从搜索字串中消失了,然后光标会回到“c”第一次出现的位置。
718 705
719另外,如果你在搜索的时候输入了 CONTROL 或者 META 组合键的话,搜索可能会 706另外,如果你在搜索的时候输入了 control 或者 meta 组合键的话,搜索可能会
720结束。(也有例外,比如 C-s 和 M-r 这些用于搜索的命令。) 707结束。(也有例外,比如 C-s 和 C-r 这些用于搜索的命令。)
721 708
722前面说的都是“向下”搜索,如果想“向上”搜索,可以用 C-r。C-r 与 C-s 709前面说的都是“向下”搜索,如果想“向上”搜索,可以用 C-r。C-r 与 C-s
723相比除了搜索方向相反之外,其余的操作都一样。 710相比除了搜索方向相反之外,其余的操作都一样。
@@ -728,7 +715,7 @@ C-s 是向前搜索,C-r 是向后搜索。不过手别这么快!别着急试
728 715
729Emacs 的迷人之处很多,能够在屏幕上同时显示多个窗格就是其中之一。 716Emacs 的迷人之处很多,能够在屏幕上同时显示多个窗格就是其中之一。
730 717
731>> 移动光标到这一行,然后输入 C-u 0 C-l。 718>> 移动光标到这一行,然后输入 C-l C-l。
732 719
733>> 现在输入 C-x 2,它会将屏幕划分成两个窗格。 720>> 现在输入 C-x 2,它会将屏幕划分成两个窗格。
734 这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。 721 这两个窗格里显示的都是本篇快速指南,而光标则停留在上方的窗格里。
@@ -746,18 +733,17 @@ Emacs 的迷人之处很多,能够在屏幕上同时显示多个窗格就是
746>> 再输入 C-x o 将光标移回到上方的窗格里。 733>> 再输入 C-x o 将光标移回到上方的窗格里。
747 光标会回到它在上方窗格中原本所在的位置。 734 光标会回到它在上方窗格中原本所在的位置。
748 735
749连续使用 C-x o 可以遍历所有窗格。每一个窗格都有它自己的光标位置,但是只 736连续使用 C-x o 可以遍历所有窗格。“被选中的窗格”,也就是绝大多数的编辑
750有一个窗格会真正显示这个光标。【其它窗格在控制台下不会显示光标,在图形 737操作所发生的地方,是在你不打字时闪烁光标的那个窗格。其他的窗格有它们自
751窗口下缺省显示为镂空光标。】一般所有的编辑命令都作用于这个光标所在的窗 738己的光标位置; 如果你在图形界面下运行 Emacs ,这些光标是镂空的长方形。
752格,我们称这个窗格为“被选中的窗格”。
753 739
754当你在一个窗格中编辑,但用另一个窗格作为参考的时候,C-M-v 是很有用的命 740当你在一个窗格中编辑,但用另一个窗格作为参考的时候,C-M-v 是很有用的命
755令。可以始窗格用 C-M-v 命令滚动另外一个窗格。【 741令。选中格,可以用 C-M-v 命令滚动另外一个窗格中的
756翻译和校对就很适合用这种方式进行。】 742字。【比如翻译和校对就很适合用这种方式进行。】
757 743
758C-M-v 是一个 CONTROL-META 组合键。如果你有 META 键的话,可以同时按住 744C-M-v 是一个 CONTROL-META 组合键。如果你有 META (或 Alt)键的话,可以
759CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,因为它们 745同时按住CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
760只是用来“修饰(modify)”你输入的字符的。 746为它们是用来“修饰(modify)”你输入的字符的。
761 747
762如果你并没有 META 键,你也可以用 ESC 来代替,不过这样的话就要注意按键顺 748如果你并没有 META 键,你也可以用 ESC 来代替,不过这样的话就要注意按键顺
763序了:你必须先输入 ESC ,然后再输入 CONTROL-v。CONTROL-ESC v 是没用的, 749序了:你必须先输入 ESC ,然后再输入 CONTROL-v。CONTROL-ESC v 是没用的,
@@ -779,6 +765,26 @@ CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
779>> 输入 C-x o 回到上方的窗格,然后再用 C-x 1 关掉下方窗格。 765>> 输入 C-x o 回到上方的窗格,然后再用 C-x 1 关掉下方窗格。
780 766
781 767
768* 多窗口(MULTIPLE FRAMES)
769------------------
770
771Emacs 可以创建多个窗口。窗口由许多窗格以及菜单、滚动条、回显区等组成。
772在图形界面下,多个窗口可以同时显示出来。在文本终端中,只能同时显示一个
773窗口。
774
775>> 输入 M-x make-frame <Return>。
776 可以看到一个新的窗口出现在了你的屏幕上。
777
778你可以在新的窗口里做最初的窗口里可以做的任何事情。第一个窗口没有什么特
779别的。
780
781>> 输入 M-x delete-frame <Return>.
782 这个命令将会关闭选中的窗口。
783
784你也可以通过图形系统来关闭某个窗口(通常是在窗口上面的某个角落里的一个
785“X”按钮)。如果你关闭的是 Emacs 进程的最后一个窗口, Emacs 将会退出。
786
787
782* 递归编辑(RECURSIVE EDITING LEVELS) 788* 递归编辑(RECURSIVE EDITING LEVELS)
783-------------------------------------- 789--------------------------------------
784 790
@@ -810,9 +816,7 @@ CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
810么帮助。如果你连自己到底需要什么帮助都不知道,那么就输入 C-h ?,Emacs 816么帮助。如果你连自己到底需要什么帮助都不知道,那么就输入 C-h ?,Emacs
811会告诉你它能提供了哪些帮助。如果你按了 C-h 又想反悔,可以用 C-g 取消。 817会告诉你它能提供了哪些帮助。如果你按了 C-h 又想反悔,可以用 C-g 取消。
812 818
813(有些主机改变了 C-h 的意义,这种以己度人外加一刀切的做法确实不太好,不 819(如果你按 C-h 之后没有任何帮助信息显示出来,那么试试 F1 键或者 M-x help <Return> 。)
814过倒是让你可以义正辞严地抱怨他们的系统管理员。话说回来,如果你按 C-h 之
815后没有任何帮助信息显示出来,那么试试 F1 键或者 M-x help <Return> 。)
816 820
817最基本的帮助功能是 C-h c。输入 C-h c 之后再输入一个组合键,Emacs 会给出 821最基本的帮助功能是 C-h c。输入 C-h c 之后再输入一个组合键,Emacs 会给出
818这个命令的简要说明。 822这个命令的简要说明。
@@ -823,9 +827,9 @@ CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
823 827
824 C-p runs the command previous-line 828 C-p runs the command previous-line
825 829
826这条消息显示了 C-p 命令对应的函数名数名展 Emacs 830这条消息显示了 C-p 命令对应的函数名的功数名
827令的功能由函完成,所以函数名身也可以被看成是最简单的文档――至少对 831本身也可以被看成是最简单的文档――至少对于你已经学过的命令来说,它们的函
828于你已经学过的命令说,它们的函名足以解释它们的功能了。 832数名足以解释它们的功能了。
829 833
830多字符命令一样可以用 C-h c 来查看。 834多字符命令一样可以用 C-h c 来查看。
831 835
@@ -841,7 +845,7 @@ CONTROL 和 META 键并输入 v。CONTROL 和 META 键先按哪个都可以,
841 845
842 C-h f 解释一个函数。需要输入函数名。 846 C-h f 解释一个函数。需要输入函数名。
843 847
844>> 试试看,输入 C-h f previous-line<Return>。 848>> 试试看,输入 C-h f previous-line <Return>。
845 Emacs 会给出它所知道的所有有关“实现 C-p 命令功能的函数”的信息。 849 Emacs 会给出它所知道的所有有关“实现 C-p 命令功能的函数”的信息。
846 850
847C-h v 用来显示 Emacs 变量的文档。Emacs 变量可以被用来“定制 Emacs 的行 851C-h v 用来显示 Emacs 变量的文档。Emacs 变量可以被用来“定制 Emacs 的行
@@ -852,7 +856,7 @@ C-h v 用来显示 Emacs 变量的文档。Emacs 变量可以被用来“定制
852 的命令。这些命令全都可以用 M-x 来启动。对于某些命令来说, 856 的命令。这些命令全都可以用 M-x 来启动。对于某些命令来说,
853 相关命令搜索还会列出一两个组合键。 857 相关命令搜索还会列出一两个组合键。
854 858
855>> 输入 C-h a file<Return>。 859>> 输入 C-h a file <Return>。
856 860
857Emacs 会在另一个窗格里显示一个 M-x 命令列表,这个列表包含了所有名称中含 861Emacs 会在另一个窗格里显示一个 M-x 命令列表,这个列表包含了所有名称中含
858有“file”的命令。你可以看到像“C-x C-f”这样的组合键显示在“find-file” 862有“file”的命令。你可以看到像“C-x C-f”这样的组合键显示在“find-file”
@@ -862,7 +866,7 @@ Emacs 会在另一个窗格里显示一个 M-x 命令列表,这个列表包含
862 866
863>> 输入 C-x 1 来删除 help 窗格。 867>> 输入 C-x 1 来删除 help 窗格。
864 868
865 C-h i 阅读册(也就是通常讲的 Info)。 869 C-h i 阅读手册(也就是通常讲的 Info)。
866 这个命令会打开一个称为“*info*”的特殊缓冲区,在那里, 870 这个命令会打开一个称为“*info*”的特殊缓冲区,在那里,
867 你可以阅读安装在系统里的软件包使用手册。要读 Emacs 的使 871 你可以阅读安装在系统里的软件包使用手册。要读 Emacs 的使
868 用手册,按 m emacs <Return> 就可以了。如果你之前从没用 872 用手册,按 m emacs <Return> 就可以了。如果你之前从没用
@@ -875,18 +879,19 @@ Emacs 会在另一个窗格里显示一个 M-x 命令列表,这个列表包含
875--------------------------- 879---------------------------
876 880
877想学习更多的使用技巧,Emacs 使用手册(manual)值得一读。你可以读纸版的 881想学习更多的使用技巧,Emacs 使用手册(manual)值得一读。你可以读纸版的
878书,也可以看电版的机手册(可以从 Help 菜单进入或者按 F10 h r)。提 882书,也可以 Emacs (可以从 Help 菜单进入或者按 C-h r)。提两个你
879两个你可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自动 883可能会很感兴趣的功能吧,一个是可以帮你少敲键盘的 completion(自动补全),
880),一个是方便文件处理的 dired(目录编辑)。 884另一个是方便文件处理的 dired(目录编辑)。
881 885
882Completion 可以替你节省不必要的键盘输入。比如说你想切换到 *Message* 缓 886Completion 可以替你节省不必要的键盘输入。比如说你想切换到 *Message* 缓
883冲区,你就可以用 C-x b *M<Tab> 来完成。只要 Emacs 能够根据你已经输入的 887冲区,你就可以用 C-x b *M<Tab> 来完成。只要 Emacs 能够根据你已经输入的
884文字确定你想要输入的内容,它就会自动帮你补齐。有关 Completion 的详细说 888文字确定你想要输入的内容,它就会自动帮你补齐。Completion 也可用于命令
885明可以在 Emacs Info 中的“Completion”一节里找到。 889名和文件名。有关 Completion 的详细说明可以在 Emacs Info 中的
890“Completion”一节里找到。
886 891
887Dired 能够在一个缓冲区里列出一个目录下的所有文件(可以选择是否也列出子 892Dired 能够在一个缓冲区里列出一个目录下的所有文件(可以选择是否也列出子
888目录),然后你可以在这个文件列表上完成对文件的移动、访问、重命名或删除 893目录),然后你可以在这个文件列表上完成对文件的移动、访问、重命名或删除
889等等操作。Dired 也在 Emacs Info 中有详细介绍,参见“Dired”一节。 894等等操作。Dired 也在 Emacs 用手册有详细介绍,参见“Dired”一节。
890 895
891Emacs 使用手册里还有许许多多的精彩功能等着你来了解。 896Emacs 使用手册里还有许许多多的精彩功能等着你来了解。
892 897
@@ -894,8 +899,7 @@ Emacs 使用手册里还有许许多多的精彩功能等着你来了解。
894* 总结(CONCLUSION) 899* 总结(CONCLUSION)
895-------------------- 900--------------------
896 901
897记住,要退出 Emacs 请用 C-x C-c。要暂时切换到 shell 并且稍后再回到 902要退出 Emacs 请用 C-x C-c。
898Emacs 里来,请用 C-z。【切换到 shell 仅对控制台下的 Emacs 有效】
899 903
900本文完全是为零起点新手所写的起步教程。如果你觉得哪里还看不明白,千万不 904本文完全是为零起点新手所写的起步教程。如果你觉得哪里还看不明白,千万不
901要怀疑自己,那一定是我们没有写好。我们永远欢迎你的不满和抱怨。 905要怀疑自己,那一定是我们没有写好。我们永远欢迎你的不满和抱怨。
@@ -905,6 +909,7 @@ Emacs 里来,请用 C-z。【切换到 shell 仅对控制台下的 Emacs 有
905--------------------- 909---------------------
906 910
907翻译:孙一江 <sunyijiang@gmail.com> 911翻译:孙一江 <sunyijiang@gmail.com>
912维护:薛富侨 <xfq.free@gmail.com>
908校对:水木社区(www.newsmth.net)Emacs 板众多网友及众多 Emacs 中文用户 913校对:水木社区(www.newsmth.net)Emacs 板众多网友及众多 Emacs 中文用户
909 914
910Emacs 快速指南(Tutorial)早有两个刘昭宏的中文译本,繁简各一。其简体版本 915Emacs 快速指南(Tutorial)早有两个刘昭宏的中文译本,繁简各一。其简体版本
@@ -915,11 +920,11 @@ Emacs 快速指南(Tutorial)早有两个刘昭宏的中文译本,繁简各
915的译文质量很高,在翻译过程中给予过我们许多借鉴和参考,在此对刘昭宏的工作 920的译文质量很高,在翻译过程中给予过我们许多借鉴和参考,在此对刘昭宏的工作
916表示感谢。 921表示感谢。
917 922
918翻译过程中最大的挑战莫过于术语译词的选择了。经过水木社区 Emacs 板热心 923翻译过程中最大的挑战莫过于术语译词的选择了。经过水木社区 Emacs 板热心
919友小范围内的讨论,我们选择了现在的译法。用户的广泛参与是自由软件生命 924友小范围内的讨论,我们选择了现在的译法。用户的广泛参与是自由软件生命
920的源泉,所以如果你有任何建议、勘误或想法,请用你喜欢的方式向我们提出。 925的源泉,所以如果你有任何建议、勘误或想法,请用你喜欢的方式向我们提出。
921你可以通过电子邮件直接联系,也可以放到 GNU Emacs 的开发邮件列表或者 926你可以通过电子邮件直接联系维护者,也可以放到 GNU Emacs 的开发邮件列表
922水木社区的 Emacs 板上进行讨论。 927木社区的 Emacs 板上进行讨论。
923 928
924下面列出主要术语的译词对照,并给出注释说明: 929下面列出主要术语的译词对照,并给出注释说明:
925 930
@@ -941,6 +946,8 @@ Emacs 快速指南(Tutorial)早有两个刘昭宏的中文译本,繁简各
941 search 搜索 946 search 搜索
942 incremental search 渐进式搜索 [3] 947 incremental search 渐进式搜索 [3]
943 948
949对于其他没有提到的术语,读者可以参考 Emacs 使用手册里的术语表。
950
944[1] “window”一词在计算机相关的领域一般都被译为“窗口”。但是在 Emacs 951[1] “window”一词在计算机相关的领域一般都被译为“窗口”。但是在 Emacs
945 中,还有一个“frame”的概念。在被广泛使用的 X 窗口系统和微软的视窗 952 中,还有一个“frame”的概念。在被广泛使用的 X 窗口系统和微软的视窗
946 (Windows)系列操作系统中,Emacs 的一个“frame”就是一个“窗口”,因 953 (Windows)系列操作系统中,Emacs 的一个“frame”就是一个“窗口”,因
@@ -977,46 +984,56 @@ Emacs 快速指南(Tutorial)早有两个刘昭宏的中文译本,繁简各
977This tutorial descends from a long line of Emacs tutorials 984This tutorial descends from a long line of Emacs tutorials
978starting with the one written by Stuart Cracraft for the original Emacs. 985starting with the one written by Stuart Cracraft for the original Emacs.
979 986
980This version of the tutorial, like GNU Emacs, is copyrighted, and 987This version of the tutorial is a part of GNU Emacs. It is copyrighted
981comes with permission to distribute copies on certain conditions: 988and comes with permission to distribute copies on certain conditions:
989
990 Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation,
991 Inc.
992
993 This file is part of GNU Emacs.
982 994
983Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation, Inc. 995 GNU Emacs is free software: you can redistribute it and/or modify
996 it under the terms of the GNU General Public License as published by
997 the Free Software Foundation, either version 3 of the License, or
998 (at your option) any later version.
984 999
985 Permission is granted to anyone to make or distribute verbatim copies 1000 GNU Emacs is distributed in the hope that it will be useful,
986 of this document as received, in any medium, provided that the 1001 but WITHOUT ANY WARRANTY; without even the implied warranty of
987 copyright notice and permission notice are preserved, 1002 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
988 and that the distributor grants the recipient permission 1003 GNU General Public License for more details.
989 for further redistribution as permitted by this notice.
990 1004
991 Permission is granted to distribute modified versions 1005 You should have received a copy of the GNU General Public License
992 of this document, or of portions of it, 1006 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
993 under the above conditions, provided also that they
994 carry prominent notices stating who last altered them.
995 1007
996The conditions for copying Emacs itself are more complex, but in the 1008Please read the file COPYING and then do give copies of GNU Emacs to
997same spirit. Please read the file COPYING and then do give copies of 1009your friends. Help stamp out software obstructionism ("ownership") by
998GNU Emacs to your friends. Help stamp out software obstructionism 1010using, writing, and sharing free software!
999("ownership") by using, writing, and sharing free software!
1000 1011
1001【下面为版权声明的译文,仅供参考。实际法律效力以英文原文为准。】 1012【下面为版权声明的译文,仅供参考。实际法律效力以英文原文为准。】
1002 1013
1003本快速指南沿袭自历史悠久的 Emacs 快速指南,可上溯至 Stuart Cracraft 为最 1014本快速指南沿袭自历史悠久的 Emacs 快速指南,可上溯至 Stuart Cracraft 为最
1004初的 Emacs 所作的版本。 1015初的 Emacs 所作的版本。
1005 1016
1006本篇文档与 GNU Emacs 一样拥有版权,并允许在下列条件的约束下发行其拷贝: 1017本篇指南是 GNU Emacs 的一部分,并允许在下列条件的约束下发行其拷贝:
1018
1019 Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation,
1020 Inc.
1021
1022 本文件为 GNU Emacs 的一部分。
1007 1023
1008 Copyright (C) 1985, 1996, 1998, 2001-2013 Free Software Foundation, Inc. 1024 GNU Emacs 为自由软件;您可依据自由软件基金会所发表的GNU通用公共授权
1025 条款,对本程序再次发布和/或修改;无论您依据的是本授权的第三版,或
1026 (您可选的)任一日后发行的版本。
1009 1027
1010 本文档允许在不变更文档内容的情况下由任何人发布在任何媒体上,同时必须 1028 GNU Emacs 是基于使用目的而加以发布,然而不负任何担保责任;亦无对适
1011 完整保留版权和许可声明,且需给予受众与发行者完全相同的、如本声明所允 1029 售性或特定目的适用性所为的默示性担保。详情请参照GNU通用公共授权。
1012 许的再次发行本文档的权利。
1013 1030
1014 许在与上述情况下布经过 1031 GNU Emacs GNU公共;如
1015 必须附带显要的文字以申明文档的最后修改者。 1032 <http://www.gnu.org/licenses/>.
1016 1033
1017Emacs 自身的版档要复杂但也精神请阅 1034COPYING”朋友们分发 GNU Emacs 拷贝使
1018COPYING”,发 GNU Emacs 写和 1035自由际行共同祛除障碍“所有
1019分享自由软件的实际行动共同祛除软件障碍主义(所谓的“所有”)! 1036权”)!
1020 1037
1021;;; Local Variables: 1038;;; Local Variables:
1022;;; coding: utf-8 1039;;; coding: utf-8