简介
Emacs 是一个文本编辑器,号称是伪装成编辑器的操作系统。提起 Emacs,必定会联想到它的竞争对手 Vim,它们都是古老而强大的编辑器。虽然我已经用 Vim 好几年了,也听说过 Emacs 的各种强大的能力,但一直没有动力去学习它,直到最近看到强大的 org mode,才鼓起勇气去学习 Emacs。本文主要记录我学习 Emacs 的过程中与 Vim 的键位比较。
核心键位
Emacs 使用组合键的形式来触发不同的功能,最常见的是以下几个键位:
- C 即 Ctrl 键,如
<C-x>
表示 按着 Ctrl 再按 x - S 即 Super 键,通常是 Windows 键或者是 Option 键
- M 即 Meta 键,通常是 Esc 键,如
<M-x>
表示先按下 Esc,然后松手,再按 x
常用键位绑定
Edit
Vim | Emacs | |
---|---|---|
向上移动 | k | C-p |
向下移动 | j | C-n |
向左移动 | h | C-b |
向右移动 | l | C-f |
移动到行首 | 0 | C-a |
移动到行尾 | $ | C-e |
移动到行首非空字符 | ^ | M-m |
移动到下一个单词 | w | M-f |
移动到上一个单词 | b | M-b |
移动到第10行 | 大专栏 Emacs key bindings for vim usersyle="text-align:left">10gg | M-g g 10 RET |
移动到下一页 | C-d | C-v |
移动到上一页 | C-u | M-v |
移动到文件首行 | gg | M-< |
移动到文件尾行 | G | M-> |
把当前行移动到屏幕中央 | zz | C-l |
进入选择模式 | v | C-SPC |
删除光标中的字符 | x | C-d |
删除光标到行尾的字符 | d$ | C-k |
删除光标所在行 | dd | C-w 或 C-a C-k |
删除下10行 | 10dd | C-u 10 C-w |
撤销上一次操作 | u | C-/ |
重复上一次命令 | . | C-z z |
向前搜索 | / | C-s |
向后搜索 | ? | C-r |
搜索下一项 | n | C-s |
搜索上一项 | N | C-r |
开始录制宏 | F3 | |
停止录制宏 | q | F4 |
执行宏 | @q | F4 |
执行宏10次 | 10@q | C-u 10 F4 |
Window
Vim | Emacs | |
---|---|---|
把窗口水平切分 | :new RET | C-x _ |
把窗口垂直切分 | :vnew RET | C-x 竖线(打出来会破坏布局,所以就不打了) |
切换窗口 | C-w j/k/h/l | C-x o |
关闭当前窗口 | :q RET | C-x 0 |
Buffer
Vim | Emacs | |
---|---|---|
创建 Buffer | :new RET | C-x b name RET |
列出 Buffer | :ls RET | C-x b |
删除 Buffer | :bd RET | C-x k RET |
参考资料
https://www.gnu.org/software/emacs/manual/
http://notex.life/t/emacs-key-binding/18