關注+星標公眾號,不錯過精彩內容

來源 | 網絡
1.?什么是VIM
2.?三種工作模式
命令模式(Command Mode)
輸入模式(Insert Mode)
命令行模式(Command-Line Mode)

2.1?命令模式
| 指令 | 作用 |
|---|---|
| h 或 向左箭頭鍵(←) | 光標向左移動一個字符 |
| j 或 向下箭頭鍵(↓) | 光標向下移動一個字符 |
| k 或 向上箭頭鍵(↑) | 光標向上移動一個字符 |
| l 或 向右箭頭鍵(→) | 光標向右移動一個字符 |
| [Ctrl] + [f] | 屏幕『向下』移動一頁 |
| [Ctrl] + [b] | 屏幕『向上』移動一頁 |
| [Ctrl] + [d] | 屏幕『向下』移動半頁 |
| [Ctrl] + [u] | 屏幕『向上』移動半頁 |
| + | 光標移動到非空格符的下一行 |
| - | 光標移動到非空格符的上一行 |
| n | n 為數字,表示光標會向右移動這一行的 n 個字符 |
| 0 或功能鍵[Home] | 移動到這一行的最前面字符處 |
| $ 或功能鍵[End] | 移動到這一行的最后面字符處 |
| H | 光標移動到屏幕最上方那一行的第一個字符 |
| M | 光標移動到屏幕中央那一行的第一個字符 |
| L | 光標移動到屏幕最下方那一行的第一個字符 |
| G | 移動到這個文檔的最后一行 |
| nG | n 為數字,移動到這個文檔的第 n 行 |
| gg | 移動到這個文檔的第一行 |
| n | n 為數字。光標向下移動 n 行(常用) |
| 指令 | 作用 |
|---|---|
| /word | 向光標之下尋找名稱為 word 的字符串 |
| ?word | 向光標之上尋找名稱為 word 的字符串 |
| n | 英文按鍵,代表重復前一個搜尋的動作 |
| N | 英文按鍵,表示反向進行前一個搜尋動作 |
| :n1,n2s/word1/word2/g | n1 與 n2 為數字,表示在第 n1 與 n2 行之間尋找 word1 這個字符串,并將該字符串取代為 word2? |
| :1,$s/word1/word2/g?或?:%s/word1/word2/g | 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2 |
| :1,$s/word1/word2/gc?或?:%s/word1/word2/gc | 從第一行到最后一行尋找 word1 字符串,并將該字符串取代為 word2,且在取代前顯示提示字符給用戶確認 (confirm) 是否需要取代 |
? 復制粘貼刪除
| 指令 | 作用 |
|---|---|
| x, X | 在一行字當中,x 為向后刪除一個字符, X 為向前刪除一個字符 |
| nx | n 為數字,連續向后刪除 n 個字符 |
| dd | 剪切游標所在的那一整行,用 p/P 可以粘貼 |
| ndd | n 為數字,剪切光標所在的向下 n 行,用 p/P 可以粘貼 |
| d1G | 刪除光標所在到第一行的所有數據 |
| dG | 刪除光標所在到最后一行的所有數據 |
| d$ | 刪除游標所在處,到該行的最后一個字符 |
| d0 | 刪除游標所在處,到該行的最前面一個字符 |
| yy | 復制游標所在的那一行 |
| nyy | n 為數字,復制光標所在的向下 n 行 |
| y1G | 復制游標所在行到第一行的所有數據 |
| yG | 復制游標所在行到最后一行的所有數據 |
| y0 | 復制光標所在的那個字符到該行行首的所有數據 |
| y$ | 復制光標所在的那個字符到該行行尾的所有數據 |
| p, P | p 為將已復制的數據在光標下一行貼上,P 則為貼在游標上一行 |
| J | 將光標所在行與下一行的數據結合成同一行 |
| c | 重復刪除多個數據,例如向下刪除 10 行,[ 10cj ] |
| u | 復原前一個動作 |
| [Ctrl]+r | 重做上一個動作 |
| . | 小數點,意思是重復前一個動作的意思 |
2.2?輸入模式
| 指令 | 作用 |
|---|---|
| i, I | 進入輸入模式(Insert mode): i 為從目前光標所在處輸入, I 為在目前所在行的第一個非空格符處開始輸入 |
| a, A | 進入輸入模式(Insert mode): a 為從目前光標所在的下一個字符處開始輸入, A 為從光標所在行的最后一個字符處開始輸入 |
| o, O | 進入輸入模式(Insert mode): o 為在目前光標所在的下一行處輸入新的一行;O 為在目前光標所在的上一行處輸入新的一行 |
| r, R | 進入取代模式(Replace mode): r 只會取代光標所在的那一個字符一次;R會一直取代光標所在的文字,直到按下 ESC 為止 |
| [Esc] | 退出編輯模式,回到一般模式中 |
2.3?命令行模式
| 指令 | 作用 |
|---|---|
| :w | 將編輯的數據寫入硬盤檔案中 |
| :w! | 若文件屬性為只讀時,強制寫入該檔案 |
| :q | 離開 vi? |
| :q! | 強制離開不儲存檔案 |
| :wq | 儲存后離開,若為 :wq! 則為強制儲存后離開 |
| ZZ | 大寫Z,表示如果修改過,保存當前文件,然后退出 |
| ZQ | 不保存,強制退出 |
| :w [filename] | 將編輯的數據儲存成另一個檔案(類似另存新檔) |
| :r [filename] | 在編輯的數據中,讀入另一個檔案的數據 |
| :n1,n2 w [filename] | 將 n1 到 n2 的內容儲存成 filename 這個檔案 |
| :! command | 暫時離開 vi 到指令行模式下執行 command 的顯示結果 |
| :set nu | 顯示行號,設定之后,會在每一行的前綴顯示該行的行號 |
| :set nonu | 與 set nu 相反,為取消行號 |
最后附一張 Vim 快捷鍵圖,可收藏使用:

