[dywang@dywOffice tmp]$ vim test.txt
[Esc]
按鈕回到一般模式。
一般模式 | 移動游標 |
h 或向左方向鍵 | 游標向左移動一個字元 |
j 或向下方向鍵 | 游標向下移動一個字元 |
k 或向上方向鍵 | 游標向上移動一個字元 |
l 或向右方向鍵 | 游標向右移動一個字元 |
Ctrl+f | 螢幕『向前』移動一頁 |
Ctrl+b | 螢幕『向後』移動一頁 |
Ctrl+d | 螢幕『向前』移動半頁 |
Ctrl+u | 螢幕『向後』移動半頁 |
+ | 游標移動到非空白字元的下一行 |
- | 游標移動到非空白字元的上一行 |
n<space> | [lt]按下數字後再按空白鍵,游標會向右移動這一行的 n 個字元。
例如 20<space> 則游標會向後面移動 20 個字元距離。 |
0 | 這是數字『 0 』:移動到這一行的最前面字元處。 |
$ | 移動到這一行的最後面字元處 |
H | 游標移動到這個螢幕的最上方那一行 |
M | 游標移動到這個螢幕的中央那一行 |
L | 游標移動到這個螢幕的最下方那一行 |
G | 游標移動到這個檔案的最後一行 |
nG | [lt]游標移動到這個檔案的第n行。
例如 20G 則會移動到檔案的第20行(可配合:set nu) |
n<Enter> | 游標向下移動n行 |
一般模式 | 搜尋與取代 |
/word | 向游標之後尋找一個字串名稱為 word 的字串。 |
?word | 向游標之前尋找一個字串名稱為 word 的字串。 |
n | 重複前一個搜尋。 |
N | 反向進行前一個搜尋動作。 |
:n1,n2s/word1/word2/g | 在第 n1 與 n2 行之間尋找 word1 這個字串,並將該字串取代為 word2 。 |
:1,$s/word1/word2/g | 從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 。 |
:1,$s/word1/word2/gc | 從第一行到最後一行尋找 word1 字串,並將該字串取代為 word2 且在取代前顯示提示字元給使用者確認是否需要取代。 |
一般模式 | 刪除、複製與貼上 |
x, X | x 為向後刪除一個字元,X 為向前刪除一個字元 |
nx | 向後刪除 n 個字元 |
dd | 刪除游標所在的那一整行 |
ndd | 刪除游標所在的向下 n 行,例如 20dd 則是刪除 20 行 |
d1G | 刪除游標所在到第一行的所有資料 |
dG | 刪除游標所在到最後一行的所有資料 |
dw | 刪除一個字(delete word)。不適用於中文。 |
yy | 複製游標所在的那一行(常用) |
nyy | 複製游標所在的向下 n 行,例如 20yy 則是複製 20 行 |
y1G | 複製游標所在行到第一行的所有資料 |
yG | 複製游標所在行到最後一行的所有資料 |
p, P | p 為複製的資料在游標下一行貼上,P 則為貼在游標上一行。 |
J | 將游標所在行與下一行的資料結合成同一行 |
u | 復原前一個動作。 |
Ctrl+r | 反復原前一個動作。 |
. | 重做上一個動作。 |
進入編輯模式 | |
i, I | 插入:i(I) 在目前的游標所在處(所在行第一個非空白字元處)插入輸入之文字; |
a, A | 增加:a(A) 由目前游標所在的下一個(最後一個)字元處開始輸入: |
o, O | 插入新的一行:o(O) 從游標所在的下(上)一行插入新的一行; |
r, R | 取代:r 會取代游標所在的那一個字元;R 會一直取代游標所在的文字,直到按下 ESC 為止; |
Esc | 退出編輯模式,回到一般模式中。 |
指令列命令模式 | |
:w | 將編輯的資料寫入硬碟檔案中 |
:w! | 若檔案屬性為『唯讀』時,強制寫入該檔案 |
:q | 離開 vi |
:q! | 若曾修改過檔案,又不想儲存,使用 ! 為強制離開不儲存檔案。 |
:wq | 儲存後離開,若為 :wq! 則為強制儲存後離開 |
:x | 與 wq 相同 |
:e! | 將檔案還原到最原始的狀態。 |
ZZ | 若檔案沒有更動,則不儲存離開,若檔案已經經過更動,則儲存後離開。 |
:w [filename] | 將編輯的資料儲存成另一個檔案(類似另存新檔) |
:r [filename] | 在編輯的資料中,讀入另一個檔案的資料。亦即將 『filename』 這個檔案內容加到游標所在行後面。 |
:set nu | 顯示行號,設定之後,會在每一行的字首顯示該行的行號 |
:set nonu | 與 set nu 相反,為取消行號。 |
:n1,n2 w [filename] | 將 n1 到 n2 的內容儲存成 filename 這個檔案。 |
:! command | 暫時離開 vi 到指令列模式下執行 command 的顯示結果。例如[ :! ls /home ] |
DYWANG_HOME