网上流传了大量的“vim命令合集”,“把vim打造成一个IDE”之类的文章,我觉得至少对我来说意义不大。我觉得把以下这些命令用熟的话,vim已经算是一个非常好用的工具,足够日常使用了。
打开/退出
vim -R file
: 只读打开
:qall
:退出所有文件
:wq
或ZZ
:保存退出
:q!
强制退出
插入
i
在当前位置前插入
I
在当前行首插入
a
在当前位置后插入
A
在当前行尾插入
o
在当前行之后插入一行
O
在当前行之前插入一行
移动
h
左移一个字符
l
右移一个字符
k
上移一个字符
j
下移一个字符
以上四个命令可以配合数字使用,比如20j
就是向下移动20行,5h
就是向左移动5个字符,当然也可使用小键盘的上下左右。
删除
dd
删除当前行
dG
删除当前行到文本末尾所有数据
10dd
删除当前行开始的共10行
D
删除当前字符至行尾
跳转
gg
跳转到文件头
G
跳转到文件尾
gg=G
自动缩进 (非常有用)
Ctrl + d
向下滚动半屏
Ctrl + u
向上滚动半屏
Ctrl + f
向下滚动一屏
Ctrl + b
向上滚动一屏
冒号+行号
,跳转到指定行;比如:120,跳转到120行;
$
跳转到行尾
0
跳转到行首
编辑
u
撤销,即后退一步,相当于 Win 下面的 Ctrl + z
Ctrl + r
重做,即前进一步,相当于 Win 下面的 Ctrl + y
yy
复制当前行
v(逐字)
或V(逐行)
进入可视模式
p
粘贴
Shift + Insert
复制 vim 外的文件粘贴到 vim 中
删除在vim里面就是剪切的意思,所以dd就是剪切当前行,可以用v或V选择特定部分再按d就是任意剪切了
查找 / 替换
/text
查找text,按n健查找下一个,按N健查找前一个
?text
查找text,反向查找,按n健查找下一个,按N健查找前一个
:set ignorecase
忽略大小写的查找
:set noignorecase
不忽略大小写的查找
:%s/old/new/g
用old替换new,替换整个文件的所有匹配
也可以用v或V选择指定行,然后执行
多文件操作
vim file1 file2 file3 ...
同时编辑多个文件
:split
将窗口分成上下两个子窗口,对应两个不同的文件
:vsplit
将窗口分成左右两个子窗口,对应两个不同的文件
:open filename
打开新文件
:bn
切换到下一个文件(当前窗口)
:bp
切换到上一个文件(当前窗口)
Ctrl-w h
移动到窗口左边
Ctrl-w j
移动到窗口下边
Ctrl-w k
移动到窗口上边
Ctrl-w l
移动到窗口右边
Ctrl-w w
移动到下一个窗口