前言
这篇文章参考了Emacs的Tutorial中文版,翻译质量非常高,需要多读两遍。
Emacs中的一大特点,就是快捷键非常多。因为在Emacs发明出来之前,还没有鼠标的存在。
由于编辑麻烦的原因,对Ctrl、Shift、Alt进行简写,如下:
键盘 | 简写 |
---|---|
Ctrl | C |
Shift | S |
Alt | M |
在Emacs中常见的 C-n
表示的含义就是按住 Ctrl
和键盘的 n
键。
想要在Emacs中获取帮助,常用的快捷键有:
快捷键 | 含义 |
---|---|
C-h b C-n | 查询 C-n 的意思 |
C-h k C-n | 查询 C-n 的详细信息 |
C-h t | 打开引导文档 |
C-h i | 阅读手册 |
文件操作
快捷键 | 含义 | 助记 |
---|---|---|
C-x C-f | 查找文件,不存在则新建文件 | find |
C-x C-w | 另存为新文件 | write |
C-x C-S | 保存文件 | save |
光标移动
快捷键 | 含义 | 快捷键 | 含义 | 含义 |
---|---|---|---|---|
C-p | 上一行 | C-n | 下一行 | previous, next |
C-f | 右移 | C-b | 左移 | forward, backward |
M-f | 右移一个词 | M-b | 左移一个词 | 中文是移动到空格或者标点处 |
C-e | 移动到行尾 | C-a | 移动到行首 | end, ahead |
M-e | 移动到句尾 | M-a | 移动到句首 | |
M-< | 移动到文档开头 | M-> | 移动到文档末尾 | < > 需要使用Shift打出 |
通常来说, C
控制与语言无关的单位(如字符、行), M
控制与语言相关的单位(如单词、句子、段落)
文字编辑
快捷键 | 含义 | 快捷键 | 含义 | 备注 |
---|---|---|---|---|
Backspace | 删除光标前的一个字符 | C-d Delete | 删除光标后的一个字符 | |
M-Backspace | 移除光标前的一个词 | M-d | 移除光标后的一个词 | |
C-k | 删除从光标到行尾间的字符 | M-k | 移除光标到句尾间的字符 | |
C-y | 粘贴最近一次移除的内容 | M-y | 粘贴前一次移除的内容 |
标记删除的步骤:
C-<SPC>
(C-空格
) 进行标记,中文输入法可能会切换,则使用C-@
即C-S-2
来进行标记,状态栏显示Mark Set- 移动光标
C-w
删除标记内容
中间可使用 C-g
取消命令
移除(kill)和删除(delete)的区别: 移除的内容被Emacs记录,内容可以被召回(yank),相当于剪切内容 删除的内容被Emacs抛弃,但还在内存中,可以通过撤销命令来找回内容 对于单个字符和空白的删除,一般不会记录。对于多个字符的内容,一般只会被移除
撤销(Undo)
C-/
、 C-x u
、 C-_
三个命令的效果是一样的,撤销命令。
缓冲区(Buffer)
快捷键 | 含义 | 备注 |
---|---|---|
C-x C-b | 列出缓冲区 | |
C-x b buffer | 切换缓冲区 | buffer表示缓冲区名称 |
C-x 1 | 离开缓冲区 | 数字1,切换主窗口 |
C-x s | 保存所有缓冲区文件 |
窗口操作
一般来说, C-x
都是与窗口、文件、缓冲区相关的命令。
快捷键 | 含义 | 快捷键 | 含义 | 助记 |
---|---|---|---|---|
C-v | 视图向后滚动 | M-v | 视图向后滚动 | 下一页,上一页 |
C-x 0 | 隐藏或者显示窗口 | C-x 1 | 关闭其他窗口 | |
C-x 2 | 上下分屏 | C-x 3 | 左右分屏 | |
C-x 4 C-f | 打开新窗口 | |||
C-x 5 2 | 打开新界面 | C-x 5 0 | 关闭所选界面 | |
C-x o | 循环切换窗口 | |||
C-M-v | 滚动下方窗口 |
重复参数
每个命令都可以重复执行多次
C-n
表示移动到下一行,通过输入 C-u 10
C-n
来表示重复执行 C-n
10次,步骤为:
C-u
- 输入10
C-n
额外的,对于 C-v
和 M-v
来说,是滚动N行,而不是执行翻页N次。
C-u 10
C-v
表示向下滚动10行, C-u 10
M-v
表示向上滚动10行
终止命令
C-g
可以取消正在输入的命令。比如上面的重复次数执行,已经输入了 C-u 10
, C-g
即可取消
搜索
快捷键 | 含义 | 快捷键 | 含义 |
---|---|---|---|
C-s | 向前搜索 | C-r | 向后搜索 |
当第一次输入 C-s
时,会出现"I-search",等待输入,如果希望跳转到下一个搜索位置,继续使用 C-s
进行光标跳转
C-g
让光标回到搜索开始前的位置, Enter
让光标停在搜索结果出
** 命令集扩展
C-x
字符扩展。 C-x
之后输入另一个字符或者组合键
M-x
命令名扩展。 M-x
之后输入一个命令名
自动保存
自动保存文件名: #文件名#
,例如 #Emacs基础.org#
模式切换
在Emacs中有许多模式(Major Mode),默认模式为Foundamental
快捷键 | 含义 |
---|---|
M-x org-mode | 切换到org-mode模式 |
代码编辑
!!!内联代码块两侧都需要加上空格,否则无效
- 内联代码:
code
、code
- 源代码块:
; ;仅为了方便展示 ;#+BEGIN_SRC emacs-lisp ;#+END_SRC