饑人谷前端學(xué)習(xí)第二課中老師講到了vim這個(gè)文本編輯器,當(dāng)時(shí)我的第一直覺這就是vi編輯器,兩者的基本操作指令完全相同,那為什么會(huì)有獨(dú)立于vi的編輯器vim,帶著疑問查閱了資料,才知道vim是vi的升級(jí)版,不但能兼容vi的所有指令,而且相對(duì)于vi有新的特性:
- 多級(jí)撤消
在vi里,按u只能撤消上次命令,而在vim里可以無限制的撤消。 - 易用性
vi只能運(yùn)行于unix類中,而vim可以運(yùn)行于unix,windows ,mac等多操作平臺(tái)。 - 語法加亮
vim可以用不同的顏色來加亮代碼。 - 可視化操作
vim不僅可以在終端運(yùn)行,還可以運(yùn)行于x window、 mac os、 windows。 - 對(duì)vi的完全兼容
某些情況下,完全可以把vim當(dāng)成vi來使用。
正因?yàn)閂im(Vi[Improved])編輯器是功能強(qiáng)大的跨平臺(tái)文本文件編輯工具,在程序開發(fā)者中被廣泛應(yīng)用,所以能熟練掌握vim是很強(qiáng)大的技能。接下來介紹vim的一些常用用法:
- 1 命令模式
輸入命令 vim filename 創(chuàng)建或打開一個(gè)文件,即進(jìn)入到編輯模式,如圖所示是在gitbash 中使用vim命令:

在此模式下,可以組合使用vim的一些命令,完成對(duì)文件的快捷操作:
字符移動(dòng)操作:
h, j, k, l 四個(gè)鍵分別對(duì)應(yīng) 左,下, 上, 右 操作
單詞移動(dòng)操作:
w word 向后移動(dòng)一個(gè)單詞,光標(biāo)定位在詞首
e end of a word 向后移動(dòng)一個(gè)單詞,光標(biāo)定位在詞尾
b backword 意思是向前移動(dòng)一個(gè)單詞
行內(nèi)跳轉(zhuǎn)
^ (shift + 6) 跳至行首(行首第一個(gè)非空字符)
0 對(duì),就是數(shù)字0,光標(biāo)跳至絕對(duì)行首(真正的行首)
$ 這個(gè)美元可以跳到行尾
- 2 輸入模式
從命令模式進(jìn)入輸入模式,方法有很多,可根據(jù)需要來使用
i insert 在當(dāng)前光標(biāo)之前插入

a append 在當(dāng)前光標(biāo)之后插入
I 大寫在行首插入
A 大寫在行尾插入
o 在當(dāng)前光標(biāo)所在行的下面一行插入
I 在當(dāng)前光標(biāo)所在行的上面一行插入
- 3 底部命令模式
在命令模式下按下冒號(hào):可以進(jìn)入底部命令模式

:w 保存編輯內(nèi)容
:wq 保存并退出
:!q強(qiáng)制退出
在命令模式下的一些常用命令:
在任何模式下按下ESC鍵可以退出當(dāng)前模式,回到命令模式,已經(jīng)是命令模式的則還在命令模式。
yy :整行內(nèi)容就被復(fù)制
小寫 dd:當(dāng)前行的內(nèi)容剪切
小寫p:復(fù)制的內(nèi)容粘貼到光標(biāo)所在行的下面一行,
大寫P:粘貼至上面一行
d ;delete 刪除命令,可以和其他命令組合刪除詞,字符,行等,例如dh向左刪除當(dāng)前字符,dl向右刪除當(dāng)前字符.....
c:用法和d用法類似,不同的是刪除之后直接會(huì)進(jìn)入insert編輯模式, 相當(dāng)于d執(zhí)行后又按下i。