Vim的操作除了基本的hjkl之外,快速鍵組合相當多,不過大概有個規則。以下是我自己個人比較常會用到,而且覺得還滿方便的操作小技巧,寫起來幫自己加深記憶,希望也對有需要的朋友有幫助。
說明
ENTER= 按下enter鍵,CTRL= 按下ctrl鍵,ALT= 按下alt鍵,如果是大寫字母例如G= shift + g,CTRL w j= 按著ctrl鍵不放,再按下w,再按下j- 這裡提到的都是Vim或是plugin內建的指令,如果你不喜歡或覺得難按,可以透過修改
.vimrc來改變快速鍵的對映 - 以下指令都是在一般模式(Normal Mode)下使用
游標移動
gg= 移到整份文件的最上方G= 移到整份文件的最下方H= 移到目前螢幕的最上方L= 移到目前螢幕的最下方10 ENTER= 游標往下移動10行,前面的數字表示行數:10 ENTER= 游標直接移動到第10行{、}= 把游標移動到上一個、下一個段落CTRL w j= 把游標往下面的分割視窗移動CTRL w k= 把游標往上面的分割視窗移動CTRL w h= 把游標往左邊的分割視窗移動CTRL w w= 在各個分割視窗間切換
建議可以搭配 EasyMotion 更有效率的移動游標
搜尋
/= 搜尋*= 移往下一個搜尋結果#= 移往上一個搜尋結果
編輯
u= undo,回到上一步CTRL r= redo,回復undo.= 重複上一個步驟~= 改變英文字母的大小寫,本來大寫會變小寫,小寫會變大寫:m+= 把目前這一行往下移動一行:m-2= 把目前這一行往上移動一行>>、<<= 增加、減少縮排yy或Y= 複製游標所在的這一整行p、P= 在游標之後、之前貼上複製的內容"ayy= 跟yy有點像,但是是把複製的東西放到a 暫存器裡,這個a可以用其它25個英文字母代替,可以用:reg指令把目前的暫存器叫出來看"ap= 在游標之後貼上a 暫存器裡的內容
模式切換
ESC或CTRL [= 回到命令模式,ESC是獨立一顆比較好按,但比較遠,如果你不想讓你的手離開打字區的話,可以選用CTRL [,或是在~/.vimrc裡自訂快速鍵CTRL v= visual block模式,可進行像TextMate按住alt鍵的區塊選取
NERDTree
B= 叫出bookmarkC= 把目前游標停留的這個目錄設定為根目錄p= 把游標移動到上一層目錄P= 把游標移動到根目錄J= 把游標移往這個結點的第一個K= 把游標移往這個結點的最後一個u= 把樹狀結構的根目錄往上移一層I= 切換是否顯示隱藏檔案m= 叫出NERDTree的系統選單
其它
:!= 執行外部指令,例如:!ls則是執行ls指令
參考資料
這裡有幾篇我覺得寫得很棒的文章,可以更清楚的知道在Vim裡操作的原理
- Vim Text Objects: The Definitive Guide
- Learn to speak vim – verbs, nouns, and modifiers!
- 大家來學Vim,雖然是將近10年前的文件,但很多還是適用
Vim的快速鍵組合如果用得熟的話,整個編輯的過程中是幾乎可以不動到滑鼠的,不過還是要多練習啦,差不多練到跟吃飯睡覺一樣熟練就可以了。打完收工 :wq