Vim 是从 vi 发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。Vim 和 Emacs 并列成为类 Unix 系统用户最喜欢的编辑器。一开始使用 Vim 时会觉得命令太多无从下手,常常望而却步。其实,只要坚持在工作中经常使用 Vim ,慢慢的就会得心应手。
Cursor Movement (光标移动)
命令 |
作用(说明) |
h,j,k,l |
h 表示往左,j 表示往下,k 表示往右,l 表示往上 |
Ctrl +f |
上一页 |
Ctrl +b |
下一页 |
w , e , W , E |
跳到单词的后面,小写包括标点 |
b , B |
以单词为单位往前跳动光标,小写包含标点 |
O |
开启新的一行 |
^ |
一行的开始 |
$ |
一行的结尾 |
gg |
文档的第一行 |
[N]G |
文档的第N行或者最后一行 |
Insert Mode (插入模式)
命令 |
作用(说明) |
i |
插入到光标前面 |
I |
插入到行的开始位置 |
a |
插入到光标的后面 |
A |
插入到行的最后位置 |
o , O |
新开一行 |
Esc |
关闭插入模式 |
Editing (编辑)
命令 |
作用(说明) |
r |
在插入模式替换光标所在的一个字符 |
J |
合并下一行到上一行 |
s |
删除光标所在的一个字符, 光标还在当行 |
S |
删除光标所在的一行,光标还在当行,不同于dd |
u |
撤销上一步操作 |
ctrl +r |
恢复上一步操作 |
. |
重复最后一个命令 |
~ |
变换为大写 |
[N]>> |
一行或N行往右移动一个tab |
[N]<< |
一行或N行往左移动一个tab |
Search (搜索)
命令 |
作用(说明) |
/pattern |
搜索(非插入模式) |
?pattern |
往后搜索 |
n |
光标到达搜索结果的前一个目标 |
N |
光标到达搜索结果的后一个目标 |
# |
跳转到该行的第#个位置 |
#G |
15G,跳转到15行 |
0 |
跳转到行首 |
$ |
跳转到行尾 |
2$ |
跳转到下一行的行尾 |
Visual Mode (视觉模式)
命令 |
作用(说明) |
v |
选中一个或多个字符 |
V |
选中一行 |
删除操作 (Delete)
命令 |
作用(说明) |
d^ |
删至行首 |
d$ |
删至行尾 |
dd |
删除一行 |
dw |
删除一个单词 |
d4w |
删除4个单词 |
daB |
删除{}及其内的内容 |
diB |
删除{}中的内容 |
x |
删除后一个字符 |
X |
删除前一个字符 |
D |
删除一行最后一个字符 |
ggdG |
删除文件中所有内容,和:%d 效果一样 |
[N]yy |
复制一行或者N行 |
yw |
复制一个单词 |
p |
粘贴 |
]p |
粘贴到合适的缩进处 |
窗口操作
命令 |
作用(说明) |
:split |
水平方向分割出一个窗口 |
:vsplit |
垂直方向分割出一个窗口 |
:close |
关闭窗口 |
Ctrl +W |
切换窗口, h 到左边窗口,j 到下方窗口,k 到上方窗口,l 到右边窗口 |
其它操作
命令 |
作用(说明) |
#yw |
复制#个字到缓冲区 |
#yy |
表示复制从光标所在的该行往下数#行文字 |
n1,n2 co n3 |
复制第n1行到第n2行之间的内容到第n3行后面 |
gUU |
将当前行的字母改为大写 |
guu |
将当前行的字母改为小写 |
gUw |
将当前光标下的单词改为大写 |
guw |
将当前光标下的单词改为小写 |
ggguG |
整篇小写 |
gggUG |
整篇大写 |
J |
当前行和下一行合并成一行 |
ctrl +/ |
单行注释 |
ctrl +shift + / |
块注释 |
ctrl +. |
折叠选中的代码的代码 |