Linux用久了发现VIM命令还是需要学一下……

一开始用VIM:“这什么垃圾编辑器,连图形界面都没有,还要用命令行,不能直接移动光标,上个世纪的吧!”VIM在终端里运行,使用方式完全与我们习惯用的Windows操作系统里的文本编辑器不同。实际上这就是VIM的强大之处:不需要图形界面就可以直接在终端里编辑文本。

一般网上租的VPS服务器都是没有图形界面的操作系统(比如说我前几天租的搬瓦工的VPS,只能SSH连接……),这时候要用到VIM。而且用VIM更有Geek范,可以更好地在同学面前装逼(逃。。。

VIM命令看起来很多,其实一大堆都用不着。只需要熟悉几个常用的命令就行了,其他的操作基本可以通过这些基本命令实现。以下加粗的就是经常用的命令。部分命令前有半角冒号“:”。

一、打开、新建与保存、退出

vi filename:打开或新建文件,并将光标置于第一行首vi +n filename:打开文件,并将光标置于第n行首
vi + filename:打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename:在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename....filename:打开多个文件,依次进行编辑
u:撤销
Ctrl+r:重做
:w:保存
:q:退出(也可以使用:wq保存并退出)

二、移动光标类命令

h或Backspace或←:光标左移一个字符
l或space或→:光标右移一个字符
k或Ctrl+p或↑:光标上移一行
j或Ctrl+n或Enter或↓:光标下移一行
(以上四个用↑↓←→足矣。)
w或W:光标右移一个字至字首
b或B:光标左移一个字至字首
e或E:光标右移一个字至字尾
):光标移至句尾
(:光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H:光标移至屏幕顶行
M:光标移至屏幕中间行
L:光标移至屏幕最后行
0:(数字零)光标移至当前行首
$:光标移至当前行尾

三、屏幕翻滚类命令

Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏
Ctrl+f:向文件尾翻一屏
Ctrl+b:向文件首翻一屏
nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

四、插入文本类命令

i:在光标前
I:在当前行首
a:光标后
A:在当前行尾
o:在当前行之下新开一行
O:在当前行之上新开一行
r:替换当前字符
R:替换当前字符及其后的字符,直至按ESC键
s:从当前光标位置处开始,以输入的文本替代指定数目的字符
S:删除指定数目的行,并以所输入文本代替之
ncw或nCW:修改指定数目的字
nCC:修改指定数目的行

五、删除命令

(个人觉得其实删除的话直接选中再按d就可以了……)
ndw或ndW:删除光标处开始及其后的n-1个字
do:删至行首
d$:删至行尾
ndd:删除当前行及其后n-1行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
Ctrl+u:删除输入方式下所输入的文本

五、选择文本、删除、复制、粘贴

v:从光标当前位置开始,选中光标经过的地方,再按一下v结束。 
V:从光标当前行开始,选中光标经过的地方,再按一下V结束。
Ctrl+v:从光标当前位置开始,选中光标起点和终点所构成的矩形区域,再按一下Ctrl+v结束。
选中后就可以用编辑命令对其进行编辑:
d:删除
y:复制(默认是复制到"寄存器”)
p:粘贴(默认从"寄存器“取出内容粘贴)
+y:复制到系统剪贴板(也就是vim的+寄存器)
+p:从系统剪贴板粘贴

六、搜索及替换命令

/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
:s/p1/p2/g:将当前行中所有p1均用p2替代
:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代
:g/p1/s//p2/g:将文件中所有p1均用p2替换

就这么多吧,其实VIM还有很多插件,很多功能可以拓展。多用用,这些命令就熟悉了。

参考:
https://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html
https://www.cnblogs.com/yangjig/p/6014198.html