三種狀態
Command: 任何輸入都會作爲編輯命令,而不會出現在屏幕上,任何輸入都引起立即反映
Insert: 任何輸入的數據都置於編輯寄存器,按ESC,可跳回command方式
Escape: 以“:”或者“/”爲前導的指令,出現在屏幕的最下一行,任何輸入都被當成特別指令。
進入輸入模式
a (append) 由遊標之後加入資料。
A 由該行之末加入資料。
i (insert) 由遊標之前加入資料。
I 由該行之首加入資料。
o (open) 新增一行於該行之下供輸入資料之用。
O 新增一行於該行之上供輸入資料之用。
離開vi
:q! 離開vi,並放棄剛在緩衝區內編輯的內容。
:wq 將緩衝區內的資料寫入磁盤中,並離開vi。
:x 同wq。
(注意—— :X 是文件加密,一定要與:x存盤退出相區別)
ZZ(大寫) 強制退出
刪除與修改
x 刪除遊標所在該字元。
X 刪除遊標所在之前一字元。
r 用接於此指令之後的字元取代(replace)遊標所在字元。如:ra將遊標所在字元以 a 取代之。
R 進入取代狀態,直到《ESC》爲止。
s 刪除遊標所在之字元,並進入輸入模式直到《ESC》。
S 刪除遊標所在之該行資料,並進入輸入模式直到《ESC》。
光標的移動
m<a-z> 設置書籤<a-z>
‘<a-z> 移至書籤<a-z>處
0 移至該行之首
$ 移至該行之末。
e 移動到下個字的最後一個字母
w 移動到下個字的第一個字母。
b 移動到上個字的第一個字母。
^ 移至該行的第一個字元處。
H 移至視窗的第一行。
M 移至視窗的中間那行。
L 移至視窗的最後一行。
G 移至該文件的最後一行。
+ 移至下一列的第一個字元處。
- 移至上一列的第一個字元處。
:n 移至該文件的第 n 列。
xxgg 移至該文件的第xx行
n+ 移至遊標所在位置之後的第 n 列。
n- 移至遊標所在位置之前的第 n 列。
<Ctrl><g> 顯示該行之行號、文件名稱、文件中最末行之行號、遊標所在行號佔總行號之百分比。
視窗的移動
<Ctrl><f> 視窗往下卷一頁。
<Ctrl><b> 視窗往上卷一頁。
<Ctrl><d> 視窗往下卷半頁。
<Ctrl><u> 視窗往上卷半頁。
<Ctrl><e> 視窗往下卷一行。
<Ctrl><y> 視窗往上卷一行。
Operator
d 剪切
y 複製。
p 粘帖,與 d 和 y 配和使用。可將最後d或y的資料放置於遊標所在位置之行列下。
c 修改,類似delete與insert的組和。刪除一個字組、句子等之資料,並插入新建資料。
Scope
e 由遊標所在位置至該字串的最後一個字元。
w 由遊標所在位置至下一個字串的第一個字元。
b 由遊標所在位置至前一個字串的第一個字元。
$ 由遊標所在位置至該行的最後一個字元。
0 由遊標所在位置至該行的第一個字元。
整行動作
dd 刪除整行。
D 以行爲單位,刪除遊標後之所有字元。
cc 修改整行的內容。
yy 使遊標所在該行復制到記憶體緩衝區。
取消前一動作(Undo)
u 恢復最後一個指令之前的結果。
U 恢復遊標該行之所有改變。
(vim) u 可以多次撤消指令,一次撤消一個操作,直至本次操作開始爲止。
(vim) Ctrl+r 可以恢復撤消前內容,按多次可恢復多次。
轉載一篇:vim入門進階與折騰http://godorz.info/2012/01/vim/
另附兩張圖片(來源網絡)