1. 程式人生 > >Vim命令使用總結

Vim命令使用總結

vim的使用命令非常繁多,要想全部掌握,那是不現實的,也沒有必要,只需要掌握常用的命令,便可在工作中使用地得心應手。

注意下面括號中內容為筆者的註釋。


一、基本命令(命令模式)
:help command ---命令幫助手冊(例如執行:help w 將給出w命令的解釋)
:w ---寫入檔案
:q ---退出vim

:q! ---不儲存強制退出vim

shift + zz ---退出vim並儲存(這個是在正常模式執行)
:x ---退出vim並且儲存檔案(同shift + zz)
:X ---給檔案加密(執行該命令會讓你輸入加密密碼,然後執行:w 寫入命令,檔案經加密了,當再次開啟此檔案時,需要這個密碼。那麼如何去掉加密設定呢?執行命令:set key= 意思就是設定密碼為空,然後再執行:w 寫入命令,此時檔案便去掉加密設定)

:%!xxd ---將文字轉化為16進位制數字

:%!xxd -r ----將16進位制數字轉化為文字


二、游標移動 (正常模式)

$ ---將游標移動到行尾(在正則表示式中,'$'符號可以匹配行尾)
0 ---將游標移動到行首(0是數字零)
^ ---將游標移動到改行的第一個非空格字元(在正則表示式中,'^'符號可以匹配行首)
gg ---將游標移動到檔案的開始位置(g == goto)
G  ---將游標移到到檔案的結束位置(G == goto)
H  ---將游標移到螢幕上第一行 (H == head)
L  ---將游標移到螢幕上最後一行(L == low)


% ---使游標在花括號的左側,按下 shift + %,可以使游標跳到與之配對的花括號上,當代碼塊比較大的時候,這個命令很有用
Ctrl + b  ---向後翻一頁(b == backward)
Ctrl + f  ---向前翻一頁(f == forward)
w ---游標跳到下個word的開頭(w == word)
e ---游標跳到下個word的字尾(e == end) 
b ---游標回到上個word的開頭(b == backward)

K ---跳到游標所在關鍵字的Man手冊上


三、文字編輯(正常模式)
dd ---刪除一行 (d == delete)
ndd ---向下刪除n行,包括游標所在行(n為一個整數)
x ---刪除游標後面字元,與退格鍵功能相反
yy ---複製游標所在行(y == yank)
nyy ---複製n行,包括游標所在行
p ---貼上(p == put)
np ---貼上n次
u ---撤銷上一次操作(u == undo)
d0 ---刪除至行首
d$ ---刪除至行尾



四、程式碼縮排(正常模式)

有時候程式碼經過別的編輯器修改或者生成,再次用Vim打開發現程式碼格式混亂,那麼Vim可以幫我們完成程式碼縮排。
在正常模式下,按下 v 進入可視模式,選中要格式的程式碼,然後按下 = ,便會自動遞迴縮排程式碼。那麼如何縮排整個
文字呢?vim下是沒有Ctrl + a全選這個操作。

解決方法:在正常模式下分別按下 ggvG=  便可全部選中,並遞迴縮排整個文字的程式碼,由此可見ggvG相當於ctrl + a ,gg 表示游標跳到檔案首,v表示進入可視模式,G表示游標跳到檔案尾。



五、查詢替換(命令模式)
/pattern ---從游標開始處向檔案尾搜尋pattern(正常模式,下面3個也是) 
?pattern ---從游標開始處向檔案首搜尋pattern 
n ---在同一方向重複上一次搜尋命令 
N ---在反方向上重複上一次搜尋命令 
:s/from/to/g ---將當前行中所有from均用to替代 (命令模式,其中from可以是正則表示式,下同)
:n1,n2s/from/to/g ---將第n1至n2行中所有from均用to替代 
:%s/from/to/g ---將檔案中所有from均用to替換 



六、多檔案編輯

1.多檔案操作
例如: vim file1 file2 file3
此時vim打開了3個檔案,file2佔滿vim視窗,那麼各個檔案如何切換呢?
:n ---切換到下一個檔案
:N ---切換到前一個檔案
:rew ---切換到第一個檔案

2、分屏操作
vim -on file1 file2 file3 
上下分屏開啟3個檔案
vim -On file1 file2 file3 
左右分屏開啟3個檔案
如果vim已經啟動,下面命令將使vim再次上下分屏或者左右分屏
:sp file4 file5 (上下分屏,sp == split)
:vsp file6 file7 (左右分屏,vsp == vertical split)
那麼各個視窗之間如何切換呢?
Ctrl + ww 後一個(w == window,下同)
Ctrl + wp 前一個
Ctrl + wh 四個方向
Ctrl + wi
Ctrl + wk
Ctrl + wl
如果只想保留游標所在的屏,關掉其他所有可以執行
Ctrl + wo


以上為筆者在工作常用到的vim命令,今作總結於此,由於筆者的水平有限,出錯在所難免,懇請讀者拍磚指正,謝謝閱讀。