This blog post is only available in Simplified Chinse.
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