vim(參考資料)的三種模式:命令模式(Command mode),輸入模式(Insert mode),底線命令模式(Last line mode)。html
啓動 vim,便進入了命令模式,此狀態下敲擊鍵盤動做會被 vim 識別爲命令。linux
經常使用命令:vim
i 切換到輸入模式
x 刪除光標所在處的字符
u 撤銷命令
: 切換到底線命令模式,以在最底一行輸入命令
複製代碼
在命令模式下按下 i 就進入了輸入模式,這個時候,鍵盤上除了 Esc 這個按鍵以外,其餘的按鍵均可以視做爲通常的輸入按鈕。bash
在命令模式下按下:(英文冒號)就進入了底線命令模式,按 ESC 鍵可隨時退出底線命令模式。spa
基本命令(已經省略了冒號):code
q 退出程序
w 保存文件
複製代碼
移動光標的方法 | |
---|---|
h 或 向左箭頭鍵(←) | 光標向左移動一個字符 |
j 或 向下箭頭鍵(↓) | 光標向下移動一個字符 |
k 或 向上箭頭鍵(↑) | 光標向上移動一個字符 |
l 或 向右箭頭鍵(→) | 光標向右移動一個字符 |
"nj" 或 "n↓" | n 表示『數字』,例如 30, 則向下移動 30 行 |
[Ctrl] + [f] | 屏幕『向下』移動一頁 |
[Ctrl] + [b] | 屏幕『向上』移動一頁 |
[Ctrl] + [d] | 屏幕『向下』移動半頁 |
[Ctrl] + [u] | 屏幕『向上』移動半頁 |
n | n 表示『數字』,如 6 光標會向右移動 6 個字符距離 |
0 | 移動到這一行的最前面字符處 (經常使用) |
$ | 移動到這一行的最後面字符處(經常使用) |
H | 光標移動到這個屏幕的最上方那一行的第一個字符 |
M | 光標移動到這個屏幕的中央那一行的第一個字符 |
L | 光標移動到這個屏幕的最下方那一行的第一個字符 |
G | 移動到這個檔案的最後一行(經常使用) |
nG | n 爲數字,移動到這個檔案的第 n 行(可配合 :set nu) |
gg | 移動到這個檔案的第一行 (經常使用) |
n | n 爲數字。光標向下移動 n 行(經常使用) |
搜索替換 | |
---|---|
/word | 向光標之下尋找一個名稱爲 word 的字符串(經常使用) |
?word | 向光標之上尋找一個名稱爲 word 的字符串(經常使用) |
n | 重複前一個搜尋的動做 |
:1,$s/word1/word2/g | 從第一行到最後一行尋找 word1 字符串,並將該字符串取代爲 word2 !(經常使用) |
:1,$s/word1/word2/gc | 在取代前顯示提示字符給用戶確認 (confirm) 是否須要取代!(經常使用) |
刪除、複製與貼上 | |
---|---|
x, X | x 爲向後刪除一個字符, X 爲向前刪除一個字符 |
nx | n 爲數字,連續向後刪除 n 個字符 |
dd | 刪除遊標所在的那一整行(經常使用) |
ndd | n 爲數字,刪除光標所在的向下 n 行(經常使用) |
d1G | 刪除光標所在到第一行的全部數據 |
dG | 刪除光標所在到最後一行的全部數據 |
d$ | 刪除遊標所在處,到該行的最後一個字符 |
d0 | 刪除遊標所在處,到該行的最前面一個字符 |
yy | 複製遊標所在的那一行(經常使用) |
nyy | n 爲數字,複製光標所在的向下 n 行(經常使用) |
y1G | 複製遊標所在行到第一行的全部數據 |
yG | 複製遊標所在行到最後一行的全部數據 |
y0 | 複製光標所在的那個字符到該行行首的全部數據 |
y$ | 複製光標所在的那個字符到該行行尾的全部數據 |
p, P | p 爲將已複製的數據在光標下一行貼上,P 則爲貼在遊標上一行 |
J | 將光標所在行與下一行的數據結合成同一行 |
u | 復原前一個動做,即回撤(經常使用) |
. | 重複前一個動做(經常使用) |
進入輸入或取代的編輯模式 | |
---|---|
i I | i 爲『從目前光標所在處輸入』, I 爲『在目前所在行的第一個非空格符處開始輸入』 (經常使用) |
a A | a 爲『從目前光標所在的下一個字符處開始輸入』, A 爲『從光標所在行的最後一個字符處開始輸入』(經常使用) |
a A | o 爲『在目前光標所在的下一行處輸入新的一行』; O 爲在目前光標所在處的上一行輸入新的一行(經常使用) |
[Esc] | 退出編輯模式,回到通常模式中(經常使用) |
指令行的儲存、離開等指令 | |
---|---|
:w | 將編輯的數據寫入硬盤檔案中(經常使用) |
:w! | 若文件屬性爲『只讀』時,強制寫入該檔案 |
:q | 離開 vi (經常使用) |
:q! | 若曾修改過檔案,又不想儲存,使用 ! 爲強制離開不儲存檔案 |
:wq | 儲存後離開,若爲 :wq! 則爲強制儲存後離開 (經常使用) |
ZZ | 若檔案沒有更動,則不儲存離開,若檔案已經被更動過,則儲存後離開 |
:w [filename] | 將編輯的數據儲存成另外一個檔案(相似另存新檔) |
vim 環境的變動 | |
---|---|
:set nu | 顯示行號 |
:set nonu | 與 set nu 相反,爲取消行號 |