Emacs快速指南摘要

Emacs 快速指南摘要

  • Emacs 快速指南摘要
    • 基本
    • 被禁用的命令DISABLED COMMANDS
    • 窗格WINDOWS
    • 插入与删除INSERTING AND DELETING
    • 撤销UNDO
    • 文件FILE
    • 缓冲区BUFFER
    • 命令集扩展EXTENDING THE COMMAND SET
    • 自动保存AUTO SAVE
    • 状态栏MODE LINE
    • 搜索SEARCHING
    • 多窗格MULTIPLE WINDOWS
    • 多窗口MULTIPLE FRAMES
    • 递归编辑RECURSIVE EDITING LEVELS

基本

退出 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-vM-v 则属于另一种类型的例外。当给定一个参数时,它们将滚动你指定的“行数”,而不是“屏数”。举例来说,C-u 8 C-v 将文本向下滚动 8 行。

现在试试看,输入 C-u 8 C-v

这个命令应该已经将文字向上滚动了 8 行。如果你想将它再次地向下滚动,你可以给定一个参数然后执行 M-v

被禁用的命令(DISABLED COMMANDS)

如果你真的想用这条命令,在 Emacs 询问你的时候应该按空格。一般来说,如果
你不想用,就按“n”。

窗格(WINDOWS)

C-x 1 只保留一个窗格(也就是关掉其它所有窗格)。

插入与删除(INSERTING AND DELETING)

重复执行输入字符的命令实际上就是输入多个相同的字符。

试试 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)

用 undo 命令进行撤销:C-/

通常 C-/ 会消除一个命令所造成的所有改变;如果你在一行中连续多次地使用C-/,你会把以前的命令也依次撤销。

C-_ 也是撤销命令;它的作用跟 C-/ 一样,但是它比较容易多次输入。在某些终端上,输入 C-/ 实际上向 Emacs 发送的是 C-_ 。另外, C-x uC-/ 完全一样,但是按起来有些麻烦。

数字参数对于 C-/C-_C-x u 的意义是执行撤销的重复次数。

文件(FILE)

C-x C-f 寻找一个文件, C-g 取消。

C-x C-s 储存这个文件

这条命令把 Emacs 中的文字存储到文件中。第一次存盘的时候 Emacs 会将原文件重命名以备份。重命名的规则通常是在原文件名之后添加一个“~”字符。【对许多人来说,这是一个烦人的特性,关掉文件备份可以用如下命令:
M-x customize-variable make-backup-files 】

缓冲区(BUFFER)

C-x C-b 列出缓冲区

C-x b TUTORIAL.cn <Return> 回到当前缓冲区

C-x b *Messages## <Return> 瞅瞅消息缓冲区里都有什么东西。

C-x s 保存多个缓冲区

命令集扩展(EXTENDING THE COMMAND SET)

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 会帮你自动补齐。输入完之后按 提交。

自动保存(AUTO SAVE)

M-x recover file <Return> 来恢复你的自动保存文件。在提示确认的时候,输入 yes<Return>

状态栏(MODE LINE)

状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是Fundamental,就是你现在正在使用的这个。它是一种“主模式”。

主模式都是可以用 M-x 启动的扩展命令,M-x fundamental-mode 就可以切换到 Fundamental模式。编辑自然语言文本――比如现在――应该用 Text 模式。输入 M-x text-mode <Return>

C-h m 可以查看当前主模式的文档。

M-x auto-fill-mode <Return> 启动自动折行模式。再用一次这条命令,自动折行模式会被关闭。

搜索(SEARCHING)

C-s 是向前搜索,C-r 是向后搜索。

多窗格(MULTIPLE WINDOWS)

输入 C-x 2,它会将屏幕划分成两个窗格。

C-M-v 滚动下方的窗格。
如果你并没有 META 键,用 ESC C-v 也可以。)向上滚动是 C-M-S-v,也就是同时按住 CONTROL、META 和 SHIFT 再按 v】
输入 C-x o(“o”指的是“其它(other)”),将光标转移到下方的窗格。

多窗口(MULTIPLE FRAMES)

输入 M-x make-frame <Return>
可以看到一个新的窗口出现在了你的屏幕上。

输入 M-x delete-frame <Return>.
这个命令将会关闭选中的窗口。

递归编辑(RECURSIVE EDITING LEVELS)

离开递归编辑可以用 ESC ESC ESC

你不能用 C-g 退出递归编辑,因为 C-g 的作用是取消“本层递归编辑之内”的
命令和其参数(arguments)。

你可能感兴趣的:(emacs)