参考 https://book1.emacs-china.org/#org67dd896

光标移动

  • C-f 向右移动一个字符,f 代表 forward
  • C-b 向左移动一个字符,b 代表 backward
  • C-p 移动到上一行 p 代表 previous
  • C-n 移动到下一行 n 代表 next
  • C-a 移动到行首 a 代表 ahead
  • C-e 移动到行尾 e 代表 end
  • C-v 移动到下一屏
  • C-l 重绘屏幕,并将光标所在的行置于屏幕的中央
  • M-a 移动到句首
  • M-e 移动到句尾
  • M-b 光标移动到下一个词(这里的词指英文单词,对于中文来说,则是移动到下一个标点符号)
  • M-f 光标移动到前一个词
  • M-v 移动到上一屏
  • M-< 将光标移动到所有文字的最开头
  • M-> 将光标移动到所有文字的最末尾
  • C-u 数字 命令 表示这些数字参数的作用是指定命令的重复次数, 也被称为前缀参数
    • C-u 8 C-f 会向前移动 8 个字符

通常惯例, Meta 系组合键用来操作 “由语言定义的单位(如词,句子,段落)",而 CONTROL 系列组合键用来操作 “与语言无关的基本单位(比如字符, 行等)"。

退出 Emacs

  • C-x C-c

窗格 Windows

  • C-x 1 只保留一个窗格(也就是关闭掉其它所有窗格)
  • C-x 2 上下打开两个窗格
  • C-x 3 左右打开两个窗格
  • C-x o 将光标移动到另一个窗格(other)
  • C-M-v 在一个窗格中编辑,使用 C-M-v 命令滚动另外一个窗格中的文字

多窗口 Multiple Frames

  • M-x make-frame 开启一个新的窗口
  • M-x delete-frame 关闭选中的窗口

插入与删除

  • <DEL> 删除光标前的一个字符
  • C-d 删除光标后的一个字符
  • M-<DEL> 删除光标前的一个词
  • M-d 删除光标后的一个词
  • C-k 移除从光标到行尾间的字符
  • M-k 移除从光标到句尾间的字符
  • C-y 召回最近一次移除的内容
  • M-y 每按一次召回前一次的内容

撤销 Undo

  • C-/ 如果修改了一段文字,又觉得改的不好,可以用 undo 命令进行撤销;如果连续多次的使用, 则会把以前的命令也依次撤销
  • C-x u 撤销

文件

  • C-x C-f 查找文件
  • C-x C-s 保存文件
  • M-x customize-variable make-backup-files 关掉文件备份

缓冲区 Buffer

  • C-x C-b 列出缓冲区
  • C-x b buffername 切换到指定名称的缓冲区
  • C-x s 保存多个缓冲区(会找到所有已被修改但尚未存盘的缓冲区,然后逐个询问是否存盘)

命令集扩展 Extending The Command Set

  • C-x 字符扩展 C-x 之后输入另一个字符或者组合键
  • M-x 命令名扩展 M-x 之后输入一个命令名

自动保存 Auto Save

Emacs 会定期将正在编辑的文件写入一个 “自动保存"文件中。自动保存文件的文件名的头尾各有一个 # 字符,比如你正在编辑的文件叫 hello.c, 那么它的自动保存文件就叫 #hello.c#. 这个文件会在正常存盘之后被 Emacs 删除。可以使用 M-x recover file 来恢复你的自动保存文件。

回显区 Echo Area

如果 Emacs 发现你输入多字符命令的节奏很慢,它会在窗格的下方称为 “回显区"的地方给你提示。回显区位于屏幕的最下面一行

状态栏 Mode Line

位于回显区正上方的一行被称为 ”状态栏“。状态栏显示了 Emacs 的状态和你正在编辑的文字的一些信息。

  • N% 显示的是光标在全文中的位置,如果位于文件的开头,那么就显示 Top, 如果是文件末尾,显示 Bot, 如果文件很小,一屏足以显示全部内容,那么状态栏显示 All
  • L 和其后的数字给出了光标所在行的行号
  • 最开头的 * 表示你已经对文字做过修改。刚刚打开的文件肯定没有被改动过,所以状态栏上显示的不是星号而是短线 -
  • 状态栏上小括号里的内容告诉你当前正在使用的编辑模式。缺省的模式是 Fundamental 它是一种”主模式“
    • 主模式都是可以用 M-x 启动的扩展命令, M-x fundamental-mode 就可以切换到 Fundamental 模式
    • M-x text-mode 切换到编辑自然语言文本
    • M-x auto-fill-mode 启动自动折行模式 image.png

搜索 Searching

Emacs 的搜索命令是 “渐进的(incremental)",意思是搜索与输入同时进行。

  • C-s 向前搜索,找到要搜索的时候再按一次 C-s 搜索到下一个搜到的位置
  • C-r 向后搜索,找到要搜索的时候再按一次 C-r 搜索到下一个搜索的位置

获取帮助

Emacs 提供了一些命令来查看 Emacs 的命令文档,这些命令都是以 Control-h开头,这个字符也因此被称为 “帮助”(help)字符。

最基本的帮助功能是 C-h c 。输入 C-h c 之后再输入一个组合键, Emacs 会给出这个命令的简要说明。

  • C-h c C-p 表示输入 C-h c 之后再输入 C-p 组合键, Emacs 会给出这个命令的简要说明。 查看更多的信息把 C-h c 换成 C-h k

  • C-h k C-p

  • C-h f previous-line 解释一个函数

  • C-h v 显示 Emacs 变量的文档

  • C-h a file 这个命令会在另一个窗格里显示一个 M-x 命令列表,这个列表包含了所有名称中含有 file 的命令

  • C-h i 阅读手册