Vim 的操作小技巧

約 1,444 字

Vim 的操作除了基本的 hjkl 之外,快速鍵組合相當多,不過大概有個規則。以下是我自己個人比較常會用到,而且覺得還滿方便的操作小技巧,寫起來幫自己加深記憶,希望也對有需要的朋友有幫助。

說明

  1. Enter = 按下 enter 鍵,Ctrl = 按下 ctrl 鍵,Alt = 按下 alt 鍵,如果是大寫字母例如G = shift + g,Ctrl w j = 按著 ctrl 鍵不放,再按下 w,再按下 j
  2. 這裡提到的都是 Vim 或是 plugin 內建的指令,如果你不喜歡或覺得難按,可以透過修改.vimrc來改變快速鍵的對映
  3. 以下指令都是在一般模式(Normal Mode)下使用

游標移動

  • g g = 移到整份文件的最上方
  • G = 移到整份文件的最下方
  • H = 移到目前螢幕的最上方
  • L = 移到目前螢幕的最下方
  • 1 0 Enter = 游標往下移動 10 行,前面的數字表示行數
  • : 1 0 Enter = 游標直接移動到第 10 行
  • {} = 把游標移動到上一個、下一個段落
  • Ctrl w j = 把游標往下面的分割視窗移動
  • Ctrl w k = 把游標往上面的分割視窗移動
  • Ctrl w h = 把游標往左邊的分割視窗移動
  • Ctrl w w = 在各個分割視窗間切換

建議可以搭配 EasyMotion 更有效率的移動游標

搜尋

  • / = 搜尋
  • * = 移往下一個搜尋結果
  • # = 移往上一個搜尋結果

編輯

  • u = undo,回到上一步
  • Ctrl r = redo,回復 undo
  • . = 重複上一個步驟
  • ~ = 改變英文字母的大小寫,本來大寫會變小寫,小寫會變大寫
  • :m+ = 把目前這一行往下移動一行
  • :m-2 = 把目前這一行往上移動一行
  • > >< < = 增加、減少縮排
  • y yY = 複製游標所在的這一整行
  • pP = 在游標之後、之前貼上複製的內容
  • " a y y = 跟y y有點像,但是是把複製的東西放到a 暫存器裡,這個a可以用其它 25 個英文字母代替,可以用:reg指令把目前的暫存器叫出來看
  • " a p = 在游標之後貼上a 暫存器裡的內容

模式切換

  • EscCtrl [ = 回到命令模式,ESC 是獨立一顆比較好按,但比較遠,如果你不想讓你的手離開打字區的話,可以選用 CTRL [,或是在 ~/.vimrc 裡自訂快速鍵
  • Ctrl v = visual block 模式,可進行像 TextMate 按住 alt 鍵的區塊選取

NERDTree

  • B = 叫出 bookmark
  • C = 把目前游標停留的這個目錄設定為根目錄
  • p = 把游標移動到上一層目錄
  • P = 把游標移動到根目錄
  • J = 把游標移往這個結點的第一個
  • K = 把游標移往這個結點的最後一個
  • u = 把樹狀結構的根目錄往上移一層
  • I = 切換是否顯示隱藏檔案
  • m = 叫出 NERDTree 的系統選單

其它

  • :! = 執行外部指令,例如 :!ls 則是執行 ls 指令

參考資料

這裡有幾篇我覺得寫得很棒的文章,可以更清楚的知道在 Vim 裡操作的原理

Vim 的快速鍵組合如果用得熟的話,整個編輯的過程中是幾乎可以不動到滑鼠的,不過還是要多練習啦,差不多練到跟吃飯睡覺一樣熟練就可以了。打完收工 :wq

留言討論