Emacs
快速指南摘要退出 Emacs
,请用 C-x C-c
退出一个正在运行中的命令,请用 C-g
C-v
向前移动一屏
M-v
向后移动一屏
C-l
重绘屏幕,并将光标所在行置于屏幕的中央
上一行 `C-p`
:
:
向左移 `C-b` .... 目前光标位置 .... 向右移 `C-f`
:
:
下一行 `C-n`
P
代表 previous
N
代表 next
B
代表 backward
F
代表 forward
通常的惯例是:META 系列组合键用来操作“由语言定义的单位(比如词、句子、段落)”,而 CONTROL系列组合键用来操作“与语言无关的基本单位(比如字符、行等等)”。
C-f
向右移动一个字符
C-b
向左移动一个字符
M-f
向右移动一个词【对中文是移动到下一个标点符号】
M-b
向左移动一个词【对中文是移动到上一个标点符号】
C-n
移动到下一行
C-p
移动到上一行
C-a
移动到行首
C-e
移动到行尾
M-a
移动到句首
M-e
移动到句尾
M-<
(META 小于号)可以将光标移动到所有文字的最开头;
M->
(META 大于号)可以将光标移动到所有文字的最末尾。
大部分的 Emacs
命令接受数字参数,并且对于多数命令而言,这些数字参数的作用是指定命令的重复次数。为一个命令指定数字参数(也就是重复次数)的方法是:先输入 C-u
,然后输入数字作为参数,最后再输入命令。如果你有META (或EDIT 或 ALT)键,那么还有另一种办法:按住 META 键不放,然后输入数字。不过我们还是建议你用 C-u
,因为它在任何终端机上都能用。这种数字参数也称为“前缀参数”,意思是说这个参数是先于使用它的命令而输入的。
举例来说, C-u 8 C-f
会向前移动 8 个字符。
虽然大部分命令把数字参数解释为其重复次数,但是也有些命令例外,它们将数字参数另做它用。比如有些命令(我们目前还没学到)仅仅将前缀参数作为一个标志――只要给出有一个前缀参数,不管其值为何,它都会改变命令的功能。
而 C-v
和 M-v
则属于另一种类型的例外。当给定一个参数时,它们将滚动你指定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v
将文本向下滚动 8 行。
现在试试看,输入
C-u 8 C-v
。
这个命令应该已经将文字向上滚动了 8 行。如果你想将它再次地向下滚动,你可以给定一个参数然后执行 M-v
。
如果你真的想用这条命令,在 Emacs
询问你的时候应该按空格。一般来说,如果
你不想用,就按“n”。
C-x 1
只保留一个窗格(也就是关掉其它所有窗格)。
重复执行输入字符的命令实际上就是输入多个相同的字符。
试试
C-u 8 *
,这将会插入********
。
<DEL>
删除光标前的一个字符
C-d
删除光标后的一个字符
M-<DEL>
移除光标前的一个词
M-d
移除光标后的一个词
C-k
移除从光标到“行尾”间的字符
M-k
移除从光标到“句尾”间的字符
你也可以用一种通用的办法来移除缓冲区里的任何一部分:首先把光标移动到你想要移除的区域的一端,然后按 C-<SPC>
(指空格)【注意,C- 往往被中文用户设定成输入法热键,如果这样,C- 就被系统拦截而无法传递给 Emacs
了,在这种情况下可以使用C-@。】,然后将光标移动到你准备移除的文字的另一端。这个时候, Emacs
会高亮光标和你按下 C- 之间的文本。最后,按下 C-w 。这样就可以把位于这两点之间的所有文字移除了。
注意,“移除(kill)”和“删除(delete)”的不同在于被移除的东西可以被重新插入(在任何位置),而被删除的就不能使用相同的方法重新插入了。重新插入被移除的文字称为“召回(yank)”。
召回的命令是 C-y
。它会在光标所在处插入你最后移除的文字。
C-y 可以召回最近一次移除的内容,那如何召回前几次移除的内容呢?它们当然没有丢,你可以用 M-y 来召回它们。在用 C-y 召回最近移除的文字之后,紧接着再按 M-y 就可以召回再前一次被移除的内容,再按一次 M-y 又可以召回再上一次的……连续使用 M-y 直到找到你想要召回的东西,然后什么也不用做,继续
编辑就行了。
用 undo 命令进行撤销:C-/
。
通常 C-/
会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用C-/
,你会把以前的命令也依次撤销。
C-_
也是撤销命令;它的作用跟 C-/
一样,但是它比较容易多次输入。在某些终端上,输入 C-/
实际上向 Emacs
发送的是 C-_
。另外, C-x u
和 C-/
完全一样,但是按起来有些麻烦。
数字参数对于 C-/
、 C-_
和 C-x u
的意义是执行撤销的重复次数。
C-x C-f
寻找一个文件, C-g
取消。
C-x C-s
储存这个文件
这条命令把 Emacs
中的文字存储到文件中。第一次存盘的时候 Emacs
会将原文件重命名以备份。重命名的规则通常是在原文件名之后添加一个“~”字符。【对许多人来说,这是一个烦人的特性,关掉文件备份可以用如下命令:
M-x customize-variable make-backup-files 】
C-x C-b
列出缓冲区
C-x b TUTORIAL.cn <Return>
回到当前缓冲区
C-x b *Messages## <Return>
瞅瞅消息缓冲区里都有什么东西。
C-x s
保存多个缓冲区
C-x
字符扩展。 C-x
之后输入另一个字符或者组合键。
M-x
命令名扩展。M-x
之后输入一个命令名。
C-z
可以暂时离开 Emacs
,通常可以用“fg”或者“%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
撤销。
用命令名扩展的命令通常并不常用,或只用在部分模式下。比如replace-string
(字符串替换)这个命令,它会把一个字符串替换成另一个。在输入 M-x
之后,Emacs
会在屏幕底端向你询问并等待你输入命令名。如果你想输入“replace-string”,其实只需要敲“repl s”就行了,Emacs
会帮你自动补齐。输入完之后按 提交。
M-x recover file <Return>
来恢复你的自动保存文件。在提示确认的时候,输入 yes<Return>
。
状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是Fundamental
,就是你现在正在使用的这个。它是一种“主模式”。
主模式都是可以用 M-x
启动的扩展命令,M-x fundamental-mode
就可以切换到 Fundamental
模式。编辑自然语言文本――比如现在――应该用 Text
模式。输入 M-x text-mode <Return>
。
用 C-h m
可以查看当前主模式的文档。
用 M-x auto-fill-mode <Return>
启动自动折行模式。再用一次这条命令,自动折行模式会被关闭。
C-s
是向前搜索,C-r
是向后搜索。
输入 C-x 2
,它会将屏幕划分成两个窗格。
用 C-M-v
滚动下方的窗格。
如果你并没有 META 键,用 ESC C-v
也可以。)向上滚动是 C-M-S-v
,也就是同时按住 CONTROL、META 和 SHIFT 再按 v】
输入 C-x o
(“o”指的是“其它(other)”),将光标转移到下方的窗格。
输入
M-x make-frame <Return>
。
可以看到一个新的窗口出现在了你的屏幕上。输入
M-x delete-frame <Return>
.
这个命令将会关闭选中的窗口。
离开递归编辑可以用 ESC ESC ESC
。
你不能用 C-g 退出递归编辑,因为 C-g 的作用是取消“本层递归编辑之内”的
命令和其参数(arguments)。