Vim 到目前位置也用了将近两年,但是很多的快捷键每次要用到的时候还是会 Google 一下,只能记住很少的命令,查的过程其实还是会浪费很多时间,这里总结一下一些常用的 Vim 命令,以便以后查看。
光标移动
| 命令 |
作用(解释) |
| h,j,k,l |
h表示往左,j表示往下,k表示往上,l表示往右 |
| Ctrl+f |
上一页 |
| Ctrl+b |
下一页 |
| w, e, W, E |
跳到单词的后面,小写包括标点 |
| b, B |
以单词为单位往前跳动光标,小写包含标点 |
| 0 |
跳到本行的头部 |
| O |
开启新的一行 |
| ^ |
一行的开始 |
| $ |
一行的结尾 |
| gg |
文档的第一行 |
| [N]G |
文档的第N行(G 是最后一行),如:27+shift+g |
插入
| 命令 |
作用(解释) |
| i |
插入到光标前面 |
| I |
插入到行的开始位置 |
| a |
插入到光标的后面 |
| A |
插入到行的最后位置 |
| o |
在当前光标的下方插入新一行 |
| O(Shift+o) |
在当前光标的上方插入新一行 |
| Esc |
关闭插入模式 |
编辑
| 命令 |
作用(解释) |
| r |
在插入模式替换光标所在的一个字符 |
| J |
合并下一行到上一行 |
| s |
删除光标所在的一个字符, 光标还在当行 |
| S |
删除光标所在的一行,光标还在当行,不同于dd |
| u |
撤销上一步操作 |
| ctrl+r |
恢复上一步操作 |
| . |
重复最后一个命令 |
| ~ |
变换为大写 |
| [N]>> |
一行或N行往右移动一个tab |
| [N]<< |
一行或N行往左移动一个tab |
退出
| 命令 |
作用(解释) |
| :w |
保存 |
| :wq,:x |
保存并关闭 |
| :q |
关闭(已保存) |
| :q! |
强制关,不保存 |
查找和搜索
| 命令 |
作用(解释) |
| /pattern |
搜索(非插入模式) ,支持正则 |
| ?pattern |
往后搜索 |
| n |
光标到达搜索结果的前一个目标 |
| N |
光标到达搜索结果的后一个目标 |
| r+p |
将光标之后的字符替换为字母p |
| :s/word/replace |
光标所在行的第一个 word 替换为replace。 |
| :%s/word/replace/ |
全文查找 word 并替换为 replace |
| :1,50s/word/replace/ |
在第1行和第50行之间(含)进行搜索和替换 |
| :45s/word/replace/ |
表示仅仅在第45行进行搜索和替换。而 1,$ 行号范围和 % 是等价的 |
| %s/^/要插入的字符串 |
每行开头插入字符串 |
| %s/$/要插入的字符串 |
每行结尾插入字符串 |
剪切、复制与粘贴
| 命令 |
作用(解释) |
| dd |
删除一行,同时被删除内容存于剪贴板上 |
| de |
删除光标后的单词内容,同时被删除内容存于剪贴板上 |
| dw |
删除光标后的单词内容以及之后的空格,同时被删除内容存于剪贴板上 |
| dw |
删除一个单词 |
| [N]dd |
删除以当前行开始的n行 |
| x |
删除后一个字符 |
| X |
删除前一个字符 |
| D |
删除一行最后一个字符 |
| [N]yy |
复制一行或者N行 |
| yw |
复制一个单词 |
| p |
粘贴 |
窗口操作
| 命令 |
作用(解释) |
| :split |
水平方向分割出一个窗口 |
| :vsplit |
垂直方向分割出一个窗口 |
| :close |
关闭窗口 |
| Ctrl+W |
切换窗口, h到左边窗口,j到下方窗口,k到上方窗口,l到右边窗口 |
文字版
这里有一个别人总结的文字版图片链接。

参考: