高見龍

iOS app/Ruby/Rails Developer & Instructor, 喜愛非主流的新玩具 :)

Vim的操作小技巧

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

說明

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

游標移動

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

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

搜尋

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

編輯

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

模式切換

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

NERDTree

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

其它

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

參考資料

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

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

Comments