Vim是Mac OS和Linux里內(nèi)置的一款強(qiáng)大的文本編輯器,能夠和Shell無縫交互。同時(shí)也是SSH遠(yuǎn)程登錄VPS時(shí)編輯文件的唯一選擇。因此掌握Vim對于做服務(wù)器運(yùn)維和Web后端開發(fā)的重要性不言而喻。
本文對Vim的快捷鍵操作進(jìn)行了簡單整理。
Vim常見有兩種模式一種是Insert模式,該模式下可以像其它文本編輯器一樣正常輸入字符;另一種是Normal模式,該模式下Vim監(jiān)聽用戶的按鍵可以對文本進(jìn)行快速修改。
想要從Insert模式切換到Normal模式只需按下ESC鍵即可。
想要從Normal模式切換到Insert模式,有很多方法。
最直接的是按下I鍵,效果是:在當(dāng)前光標(biāo)處插入文本。
如果按下A鍵,效果是:在下一光標(biāo)處追加文本。
以下均是在Normal模式下的部分 快捷鍵說明:
光標(biāo)的快速移動
-
h,j,k,l:左,下,上,右 -
w:光標(biāo)移動至下一單詞首位 -
b:光標(biāo)移動至當(dāng)前單詞首位,如果光標(biāo)已經(jīng)在當(dāng)前單詞首位,就移動到前一單詞首位 -
e:光標(biāo)移動至當(dāng)前單詞末位 -
gg:光標(biāo)移動至文本首行 -
Shift+g:光標(biāo)移動至文本尾行 -
27+Shift+g:光標(biāo)移動至文本第27行
插入行
-
o:在當(dāng)前光標(biāo)的下方插入新一行 -
Shift+o: 在當(dāng)前光標(biāo)的上方插入新一行
刪除與還原
-
x:刪除光標(biāo)后的一個(gè)字符 -
Shift+x:刪除光標(biāo)前的一個(gè)字符 -
dd:刪除光標(biāo)所在整行,同時(shí)被刪除內(nèi)容存于剪貼板上 -
de:刪除光標(biāo)后的單詞內(nèi)容,同時(shí)被刪除內(nèi)容存于剪貼板上 -
dw:刪除光標(biāo)后的單詞內(nèi)容以及之后的空格,同時(shí)被刪除內(nèi)容存于剪貼板上 -
u:還原上一個(gè)操作(不限于刪除)
剪切、復(fù)制與粘貼
- 選定文本塊:使用
v進(jìn)入可視模式;移動光標(biāo)鍵選定內(nèi)容 -
y:復(fù)制選定塊 -
yy:復(fù)制光標(biāo)所在整行 -
d:剪切選定塊 -
dd:剪切光標(biāo)所在整行 -
p:粘貼文本
查找與替換
-
f+o:在當(dāng)前行的光標(biāo)之后查找字母o -
F+b:在當(dāng)前行的光標(biāo)之前查找字母b -
:/word:全文查找word。 按下:實(shí)際上是進(jìn)入了Vim的命令模式。查找操作支持正則表達(dá)式。 -
r+p:將光標(biāo)之后的字符替換為字母p -
:s/word/replace:光標(biāo)所在行的第一個(gè)word替換為replace。 -
:%s/from/to/:全文查找from并替換為to。 -
:1,50s/from/to/:在第1行和第50行之間(含)進(jìn)行搜索和替換。:45s/from/to/表示僅僅在第45行進(jìn)行搜索和替換。而1,$行號范圍和%是等價(jià)的。 -
:%s/from/to/g:全文查找from并替換為to,包含選項(xiàng)g的替換范圍更廣。?? -
:%s/from/to/gc:全文查找from并替換為to,替換時(shí)詢問。可以選擇y/n/a/q/l/^E/^Y:y表示同意當(dāng)前替換;n表示不同意當(dāng)前替換;a表示替換當(dāng)前和后面的并且不再確認(rèn);q表示立即結(jié)束替換操作;l表示把當(dāng)前的替換后結(jié)束替換操作;^E向上滾屏^Y向下滾屏,用來幫助查看前后內(nèi)容以決定進(jìn)行操作。
執(zhí)行Shell命令
:!ls就等同于在Shell終端執(zhí)行ls命令。
Vim教程
如果你覺得這些太枯燥,可以試試Vim教程。
- 在Shell終端下輸入Vim tutor,即可進(jìn)入Vim自帶的教程里。
- Interactive Vim tutorial會教給你更多操作。