vim共有3種模式,分別爲一般模式、編輯模式和指令列模式。其中,使用vim打開一篇文檔默認進入一般模式,在此模式下可以進行一般的操作;通過按(i、I、a、A、r、R)鍵進入編輯模式,可以對文本內容進行編輯,而按ESC鍵回到一般模式;通過按(:、/、?)等鍵進入指令列模式,可以輸入指令進行查找、保存等操作,同樣,按ESC鍵回到一般模式。
需要注意的是,編輯模式、指令列模式都可以和一般模式進行切換,但編輯模式和指令列模式之間不可以直接切換。
另外,本文中,每個命令後面的‘:’不是命令本身,請注意。
一、光標的移動命令
使用vim打開文檔後,默認進入一般模式。此時可以使用不同的按鍵快速移動光標。
k,j,h,l:上下左右光標移動命令,也就是右手在鍵盤上放置的位置部分,當然也支持使用鍵盤的上下左右鍵進行移動。
另外,如果想快速移動光標,也可以按下n(kjhl),n代表數字。比如按下20k,則光標向上移動20行。
ctrl+f:屏幕向下移動一頁,當然也支持pagedown。
ctrl+b:屏幕向上移動一頁,當然也支持pageup。
0:數字0可以使光標快速移向本行行首,當然也支持home鍵。
$:此按鍵可以使光標快速移向本行行尾,當然也支持end鍵。
G:光標移動到最後一行。
nG :n爲行數,該命令立即使光標跳到指定行。
gg:光標快速移動到文件的第一行。
n<Enter>:光標向下移動n行
二、選擇命令
在一般模式下,可以按相應的命令,以進行選擇。
v:按下v鍵,可以進行選擇。此時再通過上下左右鍵移動光標,則可以按字符選擇。
V:按下V鍵,可以進行按行選擇。
ctrl+v:此時可以進行區域的選擇。相當於在word下按着alt進行選擇。
y:將選擇好的複製。
d:將選擇好的刪除
三、編輯命令
1)刪除命令
x,X:在一行中,x代表向後刪除一個字符(類似del鍵),而X代表向前刪除一個字符(類似backspace鍵)
nx:n爲數字,代表連續刪除後面的n個字符
dd:刪除光標所在的行
ndd:刪除n行(包含光標所在行,向下的n行)。
2)查找命令
在一般模式下,輸入相應命令可進入指令列模式,以進行查找。
/string:從光標處向下查找string這個關鍵字
?string:從光標處向上查找string這個關鍵字
n:當查找後,按n可重複查找
N:當查找後,按N可反向重複查找
3)替換命令
:n1,n2s/old/new/g:n1與n2爲數字。此命令表示在行n1和行n2之間查找old關鍵字,並替換爲new。
:1,$s/old/new/g:此命令表示從1行開始直到最後一行,查找old關鍵字,並替換爲new。
另外,在上述兩個命令中,如果在g後面加上c,則表示每次替換需要用戶的確認。
4)複製命令
yy:複製一行
nyy:複製n行
5)粘貼命令
p,P:p表示從光標所在行的下一行開始粘貼,而P表示從光標所在行的上一行開始粘貼
6) 插入命令
在一般模式下,可以按不同的按鍵以進入編輯模式,進行文檔的修改。
i,I:此兩個命令代表從一般模式進入插入模式。其中,i表示從目前光標所在處插入,I代表從光標所在行的第一個非空格符處插入。進入插入模式後,文檔的右下角會出現“INSERT”提示。
a,A:此兩個命令也可進入插入模式。其中,a代表從目前光標的下一字符處開始插入,而A代表從光標所在的末尾開始插入。
o,O:此兩個命令也可以進入插入模式。其中,o代表在目前光標所在行下插入一行,而O代表在目前光標所在行上插入一行。
r,R:此兩個命令可以從一般模式進入替換模式。其中,r會替換光標所在字符1次就自動退回一般模式,而R可以一直替換。
進入插入模式後,當然也支持鍵盤上的上下左右、enter、home等鍵的操作。
7)反悔命令
u:相當於Windows下的ctrl+z,即反悔一次。可多次反悔。
ctrl+r:相當於Windows下的ctrl+主,即重做反悔的上一個動作。
.:小數點命令,代表重做前一個動作。需要注意的是,它和ctrl+r是不同的。ctrl+r代表反悔後的重做,而小數點命令是重做前一個動作。
四、多文檔的編輯
可以使用vim一次打開多個文檔,也可以將同一個文檔打開多次。
當打開兩個或以上的文檔的時候,可以使用相應的按鍵進入多文檔的編輯。
:n:編輯下一個檔案
:N:編輯上一個檔案
:files:列出目前vim開啓的所有檔案
另外,vim也支持多窗口顯示。即在同一個屏幕上同時顯示多個文檔的情況。
在一般模式下,按下:sp命令可再次打開該文檔並多窗口顯示,按下:sp filename命令,可打開filename那個文檔並多窗口顯示。
當多窗口顯示後,有以下命令可以操作。
ctrl+w+k或ctrl+w+↑:切換到上面的窗口
ctrl+w+j或ctrl+w+↓:切換到下面的窗口
五、保存退出
在一般模式下,通過按相應的按鍵,可以進入指令列模式,即可以在屏幕下方輸入相應指令,完成保存退出等功能。
1)顯示/關閉行號
:set nu:在所有行之前顯示行號
:set nonu:關閉所有行之前的行號
2)保存退出
:q:退出vim
:q!:不保存修改,強行退出vim
:w:保存修改過的文件內容
:wq:保存修改內容並退出vi
:wq [filename]:將文檔存爲filename,相當於“另存爲”。