vim是一個跨平臺(Windows、UNIX、Linux和Mac等)開源文本編輯器,通過再配置也具備多種代碼編譯等各類複雜功能,前身是文本編輯器vi。vim可以和Shell無縫連接,幫助咱們順利完成工做目標。本文測試系統環境是CentOS。php
vim下操做主要是鍵盤操做,使用快捷鍵可以讓咱們操做變得更有效率。本文推薦使用鍵盤對vim進行操做。下文將對vim常見快捷鍵加以介紹。vim
vim自帶多種操做模式,分爲2大類,分別是基本模式和派生模式。派生模式本文再也不詳加介紹。編輯器
基本模式有6種,本文介紹經常使用類型有普通、插入、選擇和命令模式共4種。測試
本文操做從建立一個空文件test.txt開始。請注意Esc按鍵是不一樣模式切換快捷鍵,之後會常常用到。普通模式快捷鍵等輸入內容不會顯示到屏幕上。ui
[root@promote test]# mkdir test [root@promote test]# cd test #建立新文件test.txt [root@promote test]# vim test.txt #按i鍵進入插入模式 #測試文本以下 #直接複製到文本編輯器 ABCDEFG 1234567890 Hi Tom The quick brown fox jumps over the lazy dog. [root@promote test]# cat test.txt #測試文本以下 #直接複製到文本編輯器 ABCDEFG 1234567890 Hi Tom The quick fox jump over the lazy dog. [root@promote test]#
aioAIO與Insert等按鍵進入插入(或編輯)模式。編輯模式下Home End等快捷鍵也有相似功能。區別在於i鍵在光標所在字符前插入字符,a鍵在光標所在字符後插入字符。I鍵在當前行頭部插入字符,A鍵在當前行尾部插入字符。小寫字母o在當前光標所在行下新增一行並插入字符,大寫字母O在當前光標所在行上新增一行並插入字符。spa
普通模式下能夠進行光標移動、查找、替換、刪除、更改撤銷和恢復等操做,詳細介紹請看下文。須要注意部分快捷鍵命令字符不顯示,部分命令有更詳細提示。3d
普通模式快捷鍵方向鍵有小鍵盤方向鍵和hjkl,hjkl分別表明左下右上四個方向,每次移動1個字符或1行。Ctrl+J等價於j,Ctrl+P等價於k。code
w和b鍵以一個單詞爲單位移動,w鍵向後,b鍵向前。當輸入3B和3W鍵分別表明向前移動3個單詞和向後移動3個單詞,到頭或尾部後再也不移動。blog
$^兩個快捷鍵在當前行移動頭尾部切換,$移動至當前行尾部,^移動至當前行頭部。文檔
gg快捷鍵移動至文件頭部(即文件第一個字符),G(區分大小寫)移動至文件最後一行頭部。
()[]{}均可以快速移動,[[ ]] [] ][ 都有不一樣定義,和上文2種快捷鍵類型相似,請在鍵盤中實際練習一下,本文再也不詳細介紹。
按r鍵進入插入模式,能夠替換光標所在字符,所以每次操做只能替換1個字符。R進入替換模式,可一次替換多個字符。
y鍵是單個字符複製,快捷鍵yy(不區分大小寫)能夠複製當前行到緩衝區(等待複製等操做)。
x刪除當前一個字符,2x則刪除2個字符。以此類推,d鍵和其餘組合鍵刪除(或剪切)多個字符,例如dd刪除當前行。d0(數字)刪除光標前所在行所有字符,d$刪除當前行等等。快捷鍵delete刪除光標末尾字符。
3dd表示刪除光標所在下行3行。
p(小寫)在當前光標下一行複製(粘貼)緩衝區字符,P(大寫)在當前光標上一行復制緩衝區字符。
進行以上插入操做時,也會進入插入模式,咱們大部分操做均在該模式下完成。
u(小寫)和Ctrl+R是互逆操做,u鍵撤銷更改,Ctrl+R是u快捷鍵。
普通模式下 /string 等字符能夠進入查找模式。能夠理解爲關鍵字查找。
string是待查找字符穿,符合查找條件字符高亮顯示,未找到提示錯誤。n和N分別表明向上和向下全文重複查找,查找到頭部或尾部會提示一次後從新進行操做。:noh取消高亮顯示。
:%s /原字符 /待替換字符 只進行一次替換。:%s /原字符 /待替換字符 /g 進行屢次替換(全文替換)。
v和V進入逐字個逐行可視模式,可進行多字符或多行操做,配合d(Delete)鍵能夠進行刪除操做。~單個字符切換大小寫,cc也能夠進行行刪除操做。
:開頭爲命令模式,例如:w保存文件,:q退出文件,文件被修改使用:!q強制退出不保存。:wq保存並退出文件。:x等價於:wq。
:0快速定位到行行首,:n快速定位到n行行首,:$定位到尾行行首。
當前行進行替換:s/XXX/YYY/g XXX是須要被字符串,YYY是替換字符串。/g表示所有替換。被替換字符串"/" 用"\"轉義,即用"\/"表示。
所有替換:% s/XXX/YYY/g。
部分替換::100,102s/XXX/YYY/g替換100-102行所有XXX。
Ctr+V普通模式光標所在位置進入可視化編輯模式。方向鍵選擇後輸入AIO等快捷鍵,例如I,輸入須要插入內容,例如#或d等,輸入命令,例如:wq。
須要注意執行當前操做不顯示直到下次從新打開,該操做可用於快速註釋多行內容或取消多行內容等操做。
vim還能夠一次性打開編輯多個文件。:wqa保存所有文件。
#-o上下排列,-O左右排列 [root@promote test]# vim -O test.txt txt.txt 還有 2 個文件等待編輯 #查看模式下使用Ctrl+w+w切換文檔
更詳細操做文檔請看VIM官方文檔。https://vim.sourceforge.io/docs.php