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

圖2 建立1個名為file1的文檔
建立并打開文檔後,預設進入的是Vim編輯器的普通模式。在這個模式下我們不能輸入文字。
圖3 文檔file1被建立并處于普通模式
按”i”鍵進入到INSERT模式(插入模式)即可錄入文字,如圖4所示。
圖4 進入INSERT模式
進入插入模式後,輸入文本内容,如圖5所示。
圖5 輸入文字
文檔編寫完畢,敲擊鍵盤的Esc鍵從輸入模式傳回到普通模式,如圖6所示。
圖6 傳回到普通模式
在普通模式下,輸入冒号“:”,進入指令模式,此時光标移動到冒号後,等待我們輸入指令,如圖7所示。
圖7 進入到指令模式
在指令模式下,我們輸入“wq”,然後回車,vim編輯器将會儲存我們輸入的記憶體并退回到指令行界面,如圖8、9所示。
圖8 輸入儲存并退出指令
圖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的最近版本進行編輯。
圖10 再次打開file1的提示界面
進入file1後,在普通模式裡輸入:進入到指令模式,然後輸入sp file1.1并回車,vim将會建立一個新的檔案file1.1并為之打開一個新的橫向窗格,如圖11所示。
圖11 上下兩個窗格呈橫向顯示的界面
再次輸入:進入到指令模式,然後輸入vsp file1.2并回車,vim将會建立一個新的檔案file1.2并為之打開一個新的窗格,因為我們這次使用的指令是vsp,是以新出現的窗格與原來file1.1的窗格呈縱向并列顯示。至此,我們總共就可以看到三個窗格,可以分别對file1、file1.1、file1.2進行處理,如圖12所示。
圖12 三個窗格同時顯示的界面
打開多個窗格之後,剩下的問題就是如何靈活自如地在這些窗格之間移動變換,此時我們需要使用一個快捷鍵組合Ctrl+w,當我們在普通模式下按Ctrl+w後,會看到最下面的“狀态欄”出現了一個“^W”的狀态标記,這表示我們進入了窗格操作模式,如圖13所示。
圖13 窗格操作模式的界面
進入窗格操作模式後,我們隻需按w鍵,就會發現光标移到了另外的窗格,然後就可以對該檔案進行操作了。現在我們反複使用Ctrl+w然後再按w的方法把光标切換回file1。然後我們再來一次操作,先使用快捷鍵Ctrl+w進入窗格操作模式,然後按L——注意是大寫哦!之後,我們将看到如圖14的效果。
圖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。