天天看點

Vim文本編輯器的使用

linux、CentOS8、vim編輯器

Vim文本編輯器的使用

相對于windows裡面記事本,vim簡直是太強大了,其玩法可以說千變萬化,初學者如果想在有限時間内把它所有的功能都弄清楚,幾乎是不可能完成的任務!是以,我們通過先快速上手,然後再介紹進階功能的兩步走方法來學習vim!

一、快速上手vim

先建立一個文檔file1,如圖2所示。

Vim文本編輯器的使用

 圖2 建立1個名為file1的文檔

建立并打開文檔後,預設進入的是Vim編輯器的普通模式。在這個模式下我們不能輸入文字。

Vim文本編輯器的使用

 圖3 文檔file1被建立并處于普通模式

按”i”鍵進入到INSERT模式(插入模式)即可錄入文字,如圖4所示。

Vim文本編輯器的使用

 圖4 進入INSERT模式

進入插入模式後,輸入文本内容,如圖5所示。

Vim文本編輯器的使用

 圖5 輸入文字

文檔編寫完畢,敲擊鍵盤的Esc鍵從輸入模式傳回到普通模式,如圖6所示。

Vim文本編輯器的使用

 圖6 傳回到普通模式

在普通模式下,輸入冒号“:”,進入指令模式,此時光标移動到冒号後,等待我們輸入指令,如圖7所示。

Vim文本編輯器的使用

 圖7 進入到指令模式

在指令模式下,我們輸入“wq”,然後回車,vim編輯器将會儲存我們輸入的記憶體并退回到指令行界面,如圖8、9所示。

Vim文本編輯器的使用

 圖8 輸入儲存并退出指令

Vim文本編輯器的使用

 圖9 回到指令行界面

這樣,我們經曆了一個将文檔建立、錄入文字并儲存的完整過程。在此過程中,我們要注意vim編輯器随着我們的操作在三種不同的模式間進行切換,現在對這三種模式進行歸納,如表1所示:

模式名稱 功能 如何進入
普通模式 浏覽、編輯文檔(如複制、删除等) 按ESC鍵
插入(INSERT)模式 錄入文字 按i、o、a、I、O、A等鍵
指令模式 執行儲存、退出、查找等指令,也可執行外部指令。 輸入“:”、“/”、“?”等符号

表1 vim三大模式

除了上述表格中的三大模式外,vim還有别的模式,有興趣的同學可以到網上探索以掌握更多的模式。學習重于觀察,建議大家重點觀察圖2-8中圖檔底部文字的變化,在vim編輯器的最後一行,我們可以看作是MS Word中的狀态欄,當我們處于不同模式時,此“狀态欄”也會有相應的變化,提示我們處于什麼狀态,可以做什麼操作。

二、vim進階

1. vim也有多視窗

vim可以進行多視窗編輯,我們先打開上一節的文檔file1,如果看到圖10中一樣出現若幹提示,如果需要恢複之前的版本,可以按r鍵。此處我們按e鍵即可對file1的最近版本進行編輯。

Vim文本編輯器的使用

 圖10 再次打開file1的提示界面

進入file1後,在普通模式裡輸入:進入到指令模式,然後輸入sp file1.1并回車,vim将會建立一個新的檔案file1.1并為之打開一個新的橫向窗格,如圖11所示。

Vim文本編輯器的使用

 圖11 上下兩個窗格呈橫向顯示的界面

再次輸入:進入到指令模式,然後輸入vsp file1.2并回車,vim将會建立一個新的檔案file1.2并為之打開一個新的窗格,因為我們這次使用的指令是vsp,是以新出現的窗格與原來file1.1的窗格呈縱向并列顯示。至此,我們總共就可以看到三個窗格,可以分别對file1、file1.1、file1.2進行處理,如圖12所示。

Vim文本編輯器的使用

 圖12 三個窗格同時顯示的界面

打開多個窗格之後,剩下的問題就是如何靈活自如地在這些窗格之間移動變換,此時我們需要使用一個快捷鍵組合Ctrl+w,當我們在普通模式下按Ctrl+w後,會看到最下面的“狀态欄”出現了一個“^W”的狀态标記,這表示我們進入了窗格操作模式,如圖13所示。

Vim文本編輯器的使用

 圖13 窗格操作模式的界面

進入窗格操作模式後,我們隻需按w鍵,就會發現光标移到了另外的窗格,然後就可以對該檔案進行操作了。現在我們反複使用Ctrl+w然後再按w的方法把光标切換回file1。然後我們再來一次操作,先使用快捷鍵Ctrl+w進入窗格操作模式,然後按L——注意是大寫哦!之後,我們将看到如圖14的效果。

Vim文本編輯器的使用

 圖14 窗格呈并列顯示的界面

至此,我們發現了窗格操作的一些小竅門,那就是在普通模式下按組合鍵Ctrl+w進行入到如圖13所示的模式,然後再發出一個操作指令(其實就是輸入一個英文字母,注意大小寫是不同的),就可以對窗格進行操作了。至于什麼操作指令可以達到什麼樣的效果,大家可以參考表2:

操作指令 效果
w 把光标移到另一個窗格
j 把光标移到上面的窗格
k 把光标移到下面的窗格
h 把光标移到左邊的窗格
l 把光标移到右邊的窗格
J 将目前窗格移至下方
K 将目前窗格移至上方
H 将目前窗格移至左方
L 将目前窗格移至右方
s 将目前窗格分割成兩個水準的窗格
v 将目前窗格分割成兩個垂直的窗格
q 關閉分割出來的視窗

表2 vim多視窗操作指令

2. 正常編輯操作——插入

vim編輯器提供了多種插入操作,這些操作都是從普通模式輸入特定的指令字元進入插入模式,之後就可以錄入文字了。在第1節快速上手部分,我們僅僅用了一個正常的插入指令字元“i”,除“i”外,還有别的插入指令字元,如表3所示:

操作指令 效果
i 在目前光标位置前插入
a 在目前光标位置後插入
I 光标移到行首并插入
A 光标移到行末并插入
O 在目前行之前插入一個空行
o 在目前行之後插入一個空行
c^ 把目前光标至行首的字元删除并插入
c$ 把目前光标至行尾的字元删除并插入
cb 把目前光标至所在單詞詞首的字元删除并插入
cw 把目前光标至所在單詞詞尾的字元删除并插入
cc 删除目前行并插入
ck 删除目前行與上一行并插入
cj 删除目前行與下一行并插入
cH 删除目前行到首行并插入
cG 删除目前行到末行并插入

表3 vim插入的操作指令——必須在普通模式下執行

3. 正常編輯操作——删除

在表3的後半部分2個字元的指令其實已經包含了删除的操作,隻是那些操作的目的不是删除,而是為了進入插入模式而順便進行删除。本小節,我們學習專門的删除操作,專門的删除操作都離不開指令字元“d”、”D“,最”順手“的删除操作當屬連按兩次”d“鍵——删除目前行。如果要删除連續幾行,則須佩以數字,如3d的作用是删除目前及其後的三行。需要說明的是,我們輸入3d後,vim編輯器不會像之前一樣立即執行指令,我們還須按Enter鍵确認。表4列出了删除的正常操作。

操作指令 效果
x 删除光标所在字元——相當于删除Delete鍵
X 删除光标前的字元——相當于倒退Backspace鍵
dd 删除一行
diw 删除光标處的單詞
dis 删除光标處的句子
dgg 删除到檔案首
dG 删除到檔案末
d^ 把目前光标至行首的字元删除
d$ 把目前光标至行尾的字元删除
db 把目前光标至所在單詞詞首的字元删除
dw 把目前光标至所在單詞詞尾的字元删除

表4 vim的正常删除指令——必須在普通模式下執行

表4列出的隻是一些删除的正常操作,為了展示vim的強大,我們列出一些綜合性的”騷“操作,請看表5

操作指令 效果
:g/^$/d 删除空行
:g/^\s*#/d 删除以#号開頭的行
:g/hell/d 删除包含hell的行
:g/^hell/d 删除以hell開頭的行
:g/hell$/d 删除以hell結尾的行

表5 綜合性的删除操作

4. 正常編輯操作——複制、粘貼

本小節,我們學習複制操作,複制操作離不開指令字元“y”,最順手的複制操作當屬連按兩次y鍵——複制目前行。如果要連續複制幾行,則須佩以數字,如3yy的作用是複制三行。複制完成後,隻需要按“p”鍵,即可粘貼,需要注意的是,這些操作都要在普通模式下執行。表6列出了複制粘貼的正常操作。

操作指令 效果
yy 複制目前行
nyy 複制n行
y^ 複制至行首
y$ 複制至行末
yb 複制目前光标至所在單詞詞首的字元
yw 複制目前光标至所在單詞詞尾的字元
diw 複制光标處的單詞
dis 複制光标處的句子
yH 複制目前行到首行
yG 複制目前行到末行
p 粘貼在光标後
P 粘貼在光标前

表6 複制粘貼的正常操作

如果需要選中一些内容後再進行複制,可普通模式下按v鍵進入選擇模式,然後用方向鍵或hjkl選擇文本,再按y行進行複制。如果需要的是剪切,則需要按d鍵——是的,你猜得沒錯,前面的所有删除操作等同于剪切^_^

5. 正常編輯操作——撤銷、恢複

類似windows系統中的Ctrl+z和Ctrl+y,vim也有對應的撤銷和恢複操作,就是在普通模式下,按u鍵即為撤銷,而恢複則是Ctrl+r。