vi (Visual Interface) 相對於簡單易學的nano是一款功能更加強大的文本編輯器,而vim (Vi IMproved)則是vi的進階版,甚至可以作爲程序編輯器使用。
在vim的基本使用方法中,我將會介紹vim的三種模式,vim的移動命令,如何進行文本操作及如何退出編輯器。
1. vim 的三種模式
命令模式(command mode)
以 vim 打開一個文件就直接進入命令模式,因此也可稱之爲默認模式。使用vim [options] FILE 即可打開文件。( 注:vim + FILE 可打開文件並調到最後一行)在這個模式中,可以控制屏幕光標的移動,字符、字或行的刪除,複製,粘帖及進入插入模式,或者到末行模式。
輸入模式(Insert or replace mode)
當按下"i I a A o O r R"等任一字母后可進入輸入模式,只有在輸入模式下,纔可做文字輸入。這時在畫面的左下方會出現“INSERT"或”REPLACE"的字樣。按下“ESC”可返回命令模式。
末行模式(last line mode)
在命令模式中,輸入“:/ ?”中的任一按鍵,可以將光標移動到最底下那一行。在這個模式中,可以進行查找,讀取,存檔,批量替換字符, 顯示行號,退出vim等動作。同時,按下“ESC”也可返回命令模式。
2. vim的移動命令
2.1 字符間跳轉:
在命令模式下,可以通過4個鍵來進行字符間的移動: h(左), j (下), k (上), i (右)。如果想要進行多次移動,則先按下數字鍵,之後本文中將用#表示數字,如“10h", 向左跳10個字符。
2.2 單詞間跳轉:
w: 跳至後一個單詞的詞首;
e: 跳至當前或下一個單詞詞尾;
b: 跳至當前或前一個單詞詞首;
2.3 行內跳轉:
^: 行首的第一個非空白字符。
0或功能鍵“Home": 移動到這一行最前面的元字符處,即絕對行首。
$或功能鍵“End": 移動到這一行最後面的元字符出,即絕對行尾
2.4 行間跳轉:
1G, gg: 移動到文件的第一行。
G: 移動到文件的最後一行。
#G:移動到文件的第#行。
3. 如何進行文本操作
3.1 插入或替換命令,即從命令模式切換到輸入模式
i: insert, 實現在當前光標所在處字符前面轉換爲輸入模式;
I: 在當前光標所在行的行首轉爲輸入模式;
a: append, 實現在當前光標所在處字符後面轉換爲輸入模式;
A: 在當前光標所在行的行尾轉爲輸入模式;
o: 實現在當前光標所在行的下方新建一個空白行並轉換爲輸入模式;
O: 在當前光標所在行的上方新建一行,並轉爲輸入模式;
r: replace, 實現替換當前光標所在的字符一次。
R: 一直替換當前光標所在的字符,直到按下 ESC 爲止。
3.2 刪除命令:x, d (deleting)
x: 向後刪除一個字符
X:向前刪除一個字符
dd: 刪除光標所在的一整行; #dd, 刪除光標所在的向下 #列,例如 20dd 爲刪除 20 列。
dw: 刪除一個單詞;d#w, 或#dw, 刪除#個單詞
d^: 刪除光標所在處,到該行的第一個字符
d$:刪除光標所在處,到該行的最後一個字符
dG:刪除光標所在處,到最後一行的所有資料
3.3 複製命令: y (yanking)
yy: 複製光標所在的一整行; #yy, 複製光標所在的向下 #列,例如 20yy 爲複製20 列。
yw:複製一個單詞;y#w, 或#yw, 複製#個單詞
y^: 複製光標所在處,到該行的第一個字符
y$: 複製光標所在處,到該行的最後一個字符
yG:複製光標所在處,到最後一行的所有資料
3.4 粘帖命令:p (pasting)
如果複製的是整行,則:
p: 在當前光標所在行的下方粘貼;
P:在當前光標所在行的上方粘貼
如果複製的不是整行,則:
p: 在當前光標所在處字符的後方粘貼;
P:在當前光標所在處字符的前方粘貼;
4. 退出vim編輯器
ZZ:用於在命令模式下退出,若文件沒有更改,則不保存離開,若文件更改了,則保存後離開。
在末行模式下:
: w 保存
: q 退出
: wq 保存退出
: w! 強制保存
: q! 強制退出
: x =wq 保存退出
: w [filename] 另存爲