Sublime 被称为最性感的编辑。Vim 被称为编辑器之神。
我喜欢 Sublime 的强大易用,也喜欢 Vim 的快速和掌控感(文末有展示Vim肌肉的几个例子)。
幸运的是,可以在 Sublime 中使用 Vim 的大部分功能。
让 Sublime 支持 Vim
Sublime 中自带支持 Vim 的插件,但默认是关闭的。开启方式为:在菜单 Preferences/Settings-User 中设置
1
<span class="hljs-string">"ignored_packages"</span>: []
在 Sublime 中按下 Esc 键,就进入了一般模式。但 Esc 键好远,我们可以在 Key Binding 中改成自己习惯的键。 我用的是
1 |
fj |
(有点非主流,哈哈),如下:
下面是一般模式下的常用命令。
1
{ <span class="hljs-attr">"keys"</span>: [<span class="hljs-string">"f"</span>, <span class="hljs-string">"j"</span>], <span class="hljs-attr">"command"</span>: <span class="hljs-string">"exit_insert_mode"</span>}
移动光标
- h,j,k,l: 左,下,上,右。
- w: 下一个词的词首。
- b: 上一个词的词首。
- e: 下一个词的词尾。
- $: 行尾。
- ^: 行首。
1
0也可以达到一样的效果。
- gg: 到文件第一行。
- ngg: 到文件第n行。
- G: 文件最后一行。
- M: 到屏幕中间。
- {: 向上跳转到最近的空行。
- }: 向上跳转到最近的空行。
- ctrl + n: 到第n个面板。编号顺序是从上到下,从左到右。
进入编辑模式
- i: 光标前插入。
- I: 在当前行首插入。
- a: 光标后插入。
- A: 当前行尾插入。
- O: 在当前行之前插入新行。
- o: 在当前行之后插入新行。
删除
- x: 删除光标所在位置的字符。
- D: 删至到行尾。
- d: 配合移动光标一起使用,如:
- d^: 删至行首。
- dw: 删除当前光标到该单词结束。
- dd: 删除当前行。
查找
- /: 输入关键字,发现不是要找的,直接在按n,向后查找直到找到为止。
- ?: 输入关键字,发现不是要找的,直接在按n,向前查找直到找到为止。
修改
- y: 复制。要配合移动光标一起使用,如:
- yy: 复制当前行
- yw: 复制当前光标到该单词结束。
- p: 粘贴。将内容粘贴在当前光标后。
- P: 粘贴。将内容粘贴在当前光标前。
- r: 替换当前字符为下面输入的字符。
- u: 撤销上一步操作。
选择
- v: 要配合移动光标一起用。对选择的区域可以做删除(d),复制(y)等操作。
其他
- .: 重复上个命令。
- 数字+命令:将命令执行n遍。如
- 4w: 向后移4个单词。
- d4w: 向后删除4个单词。
- 5yy: 复制5行。
示例
下面的示例都是在已经进入一般模式下进行的。
- 在当前行结尾加分号:
1
A; - 将50到60行的内容移动到30行:
1
50ggv61ggd30ggP(移动到50行,选择到60行,剪切,移动到30行,粘贴)。