快速上手 Vim 快捷鍵

使用 VIM 的好處

VIM 是一款非常強大的文本編輯器,特別受到開發者的喜愛。這篇文章將重點介紹 VIM 的快捷鍵及其優點:

  • 效率高:VIM 的鍵盤操作設計,使得在不需要移動手指離開鍵盤的情況下,可以快速進行文本編輯,極大地提高了生產力。
  • 個人習慣:我最近開始練習演算法,加上之前參加過技能競賽(資網職種),已經習慣使用 VIM。
  • 功能強大:VIM 是一個輕量級的編輯器,但它提供了非常強大的功能,能夠處理各種編輯任務。

快捷鍵

VIM 主要有三種模式:Command modeInsert modeLast line mode。以下是各模式的介紹和常用快捷鍵:

模式介紹

  • Command mode:VIM 開啟檔案後的預設模式。在這個模式下,你可以使用各種編輯操作。
  • Insert mode:按下 iao 皆可進入此模式。i 在當前字符前插入,a 在當前字符後插入,o 在下一行開始插入。進入此模式後,螢幕左下角會顯示 --INSERT--
  • Last line mode:按下 : 進入此模式,用於輸入 VIM 的命令。

常用快捷鍵

  • 模式切換
    • esc:退出當前模式並返回 Command mode
    • iao:進入 Insert mode
    • v:進入 Visual mode,進行選取操作。
  • 在 Command mode 中操作
    • 跳轉操作
      • gg:跳轉至文件首。
      • G:跳轉至文件尾。
      • 0:跳轉至行首。
      • $:跳轉至行尾。
        • 也可以使用數字跳多行。
    • 刪除與剪切
      • x:刪除當前游標所在的字符。
      • dd:刪除(剪切)游標所在行。
        • 可以與數字結合使用,例如 d3w 刪除接下來的三個單詞,或 d$w 刪除到行尾。
    • 複製與貼上
      • yy:複製游標所在行。
      • p:在游標處貼上剪下或複製的內容。
    • 游標移動
      • h (left)、j (down)、k (up)、l(right):移動游標(也可使用方向鍵)。
    • 頁面滑動
      • Ctrl-U:向上滑動頁面。
      • Ctrl-D:向下滑動頁面。
    • 文字移動指令
      • w:向前移動一個單詞。
      • b:向後移動一個單詞。
      • 可加上數字進行多個單詞的移動,例如 2w 向前移動兩個單詞,3b 向後移動三個單詞。
    • 選取操作
      • ggVG:快速選取所有文字。
      • Ctrl-V:進入視覺模式,選取多行後按 I 可以在選取範圍的每行前插入符號或註解,按 esc 完成。
    • 行操作
      • J:合併行,例如單獨使用 J 可將下一行合併到當前行,或在前面加數字進行多行合併。
    • 取消與重做
      • u:撤銷上次的編輯操作。
      • Ctrl-R:重做,逆轉前面的撤銷操作。
      • U:撤銷整行的所有更改。
  • 在 Last line mode 中操作
    • 以下指令需按下 : 後操作:
    • help:查看 VIM 文檔,可以參考官方的 PDF
    • [行數]:跳到指定行。
    • q:退出 VIM。
    • q!:強制退出不保存。
    • wq:保存並退出。
    • wq!:強制保存並退出。
    • /:搜尋指定內容。
      • n:向下尋找下一個匹配項。
      • N:向上尋找上一個匹配項。
      • 支援使用正則表達式進行搜尋。
    • 檔案操作
      • :e [檔案名]:打開指定檔案。
      • :w [檔案名]:將當前檔案另存為指定檔案名。
      • :sav [檔案名]:另存為新檔案,同時繼續編輯該檔案。
      • :bn:bp:切換至下一個/上一個打開的緩衝區(buffer)。
    • 分割視窗
      • :split:sp:水平分割視窗並打開新檔案或當前檔案。
      • :vsplit:vsp:垂直分割視窗並打開新檔案或當前檔案。
      • Ctrl-w + [方向鍵]:在分割視窗間切換焦點。
      • Ctrl-w q:關閉當前分割視窗。
    • 文字替換
      • :%s/舊字串/新字串/g:在全文件範圍內替換舊字串為新字串。
      • :%s/舊字串/新字串/gc:在全文件範圍內替換舊字串為新字串,但每次替換前會要求確認。

使用這些快捷鍵,VIM 能夠大大提升你的編輯效率,讓你在編輯過程中更加得心應手。