編輯模式 | 游標移動 | 標記與複製 | 搜尋與取代 | 刪除 | 檔案功能 | 視窗分割 | Encoding | Hex | 其它
Intro
Vim 文字編輯器 - Wikipedia
vi 是 unix 家族下功能強大的文字編輯器,讓用戶只要使用一個鍵盤就可以完成所有的編輯。而 vim 則是 vi 的加強版,甚至在 Windows 都有支援。但 vi/vim 指令眾多,以下整理出這些指令 Cheat Sheet:
編輯模式
| 指令 |
說明 |
| i |
在游標位置進入編輯模式 |
| I |
在游標行的第一個非空白字元進入編輯模式 |
| a |
在游標位置後進入編輯模式 |
| A |
在游標行的最後一個字元進入編輯模式 |
| o |
向下新增一行,並進入編輯模式 |
| O |
向上新增一行,並進入編輯模式 |
| cc |
刪除游標行,並進入編輯模式 |
| [ESC] |
取消指令或退出編輯模式 |
游標移動
| 指令 |
說明 |
| gg |
移到第一行 |
| G |
移到最後一行 |
| 行數 → G |
移動到第 n 行 |
| 0 |
移動到該行最前面 |
| $ |
移動到該行最後面 |
| 字數 → [Space] |
向右移動 n 個字元 |
| 行數 → [Enter] |
向下移動 n 行 |
標記與複製
| 指令 |
說明 |
| v |
開始字串標記 |
| V |
開始行標記 |
| v → [Ctrl]-V |
開始區塊標記 |
| d |
刪除標記的內容 |
| y |
複製標記的內容 |
| yy |
複製游標行 |
| yG |
複製游標行到最後一行 |
| y1G |
複製游標行到第一行 |
| y$ |
複製游標處到最後一個字元 |
| y0 |
複製游標處到第一個字元 |
| p |
在下一行貼上複製或刪除的內容 |
| P |
在上一行貼上複製或刪除的內容 |
| [Ctrl]-R → 0 |
在下一行貼上複製或刪除的內容,適用於編輯模式及指令行 |
搜尋與取代
| 指令 |
說明 |
| /搜尋字串 |
向下搜尋字串 |
| /\c搜尋字串 |
向下搜尋字串,不分大小寫 |
| 將游標移到字串上,直接按 "*" 也可以做向下搜尋 |
| ?搜尋字串 |
向上搜尋字串 |
| ?\c搜尋字串 |
向上搜尋字串,不分大小寫 |
| :set ic |
搜尋時不分大小寫 |
| :set noic |
搜尋時要分大小寫 |
| n |
繼續下一個搜尋結果 |
| N |
繼續上一個搜尋結果 |
| :起始行,終止行s/搜尋字串/取代字串/gic |
從第 n 行到第 n 行取代字串 (後面的 g: 整行全部, i: 不分大小寫,c: 詢問) |
| :%s/搜尋字串/取代字串/g |
全部取代字串 (後面的 g: 整行全部, i: 不分大小寫, |
| c: 詢問) |
刪除
| 指令 |
說明 |
| dd |
刪除游標行 |
| dG |
刪除游標行到最後一行 |
| d1G |
刪除游標行到第一行 |
| d$ |
刪除游標處到最後一個字元 |
| d0 |
刪除游標處到第一個字元 |
檔案功能
| 指令 |
說明 |
| :w |
存檔 (加 ! 表示強制存檔) |
| :w 檔案名稱 |
另存新檔 |
| :wq |
存檔並退出 vi |
| :w !sudo tee % |
Sudo 強制存擋 |
| :e 檔案名稱 |
編輯其它檔案 |
| :e! |
還原至檔案編修前的狀態 |
| :r 檔案名稱 |
讀入檔案內容,並加到游標行的後面 |
| :n |
切換到下一個開啟的檔案 |
| :N |
切換到上一個開啟的檔案 |
| :set nu |
顯示行號 |
| :set nonu |
取消行號顯示 |
| :files |
列出所有開啟的檔案 |
視窗分割
| 指令 |
說明 |
| :new |
新增水平視窗 |
| :new 檔案名稱 |
新增水平視窗,並在新增的視窗載入檔案 |
| :vnew |
新增垂直視窗 |
| :vnew 檔案名稱 |
新增垂直視窗,並在新增的視窗載入檔案 |
| [Ctrl]-W → [方向鍵] |
切換視窗 |
| :only |
僅保留目前的視窗 |
編碼 (Encoding)
| 指令 |
說明 |
| :set fileencoding |
顯示目前讀取檔案使用的 encoding (fileencoding) |
| :set fileencoding={encoding} |
設定目前檔案使用的 encoding |
| :e ++enc={encoding} |
使用指定的 encoding 重新讀取檔案 (++enc) |
| :w ++enc={encoding} |
使用指定的 encoding 寫入當前檔案 |
| ga |
查看目前游標所在字元的 ASCII 碼、16進位、8進位 (ga) |
| g8 |
查看目前游標所在字元的 UTF-8 編碼 (ga) |
十六進制 (Hex)
| 指令 |
說明 |
| :%! xxd |
使用 xxd 將檔案轉換成 hex 編輯器模式 |
| :%! xxd -r |
使用 xxd 將檔案從 hex 編輯器模式復原回去 |
其它
| 指令 |
說明 |
| J |
將游標行與下一行合併 |
| u |
還原指令 |
| [Ctrl]-R |
重做指令 |
| . |
重覆上一個指令 |
| ! 命令 |
執行 linux 指令,並顯示執行結果 |
| :q |
退出 vi (加 ! 表示強制退出) |