Vim 的操作小技巧
Vim 的操作除了基本的 hjkl
之外,快速鍵組合相當多,不過大概有個規則。以下是我自己個人比較常會用到,而且覺得還滿方便的操作小技巧,寫起來幫自己加深記憶,希望也對有需要的朋友有幫助。
說明
- Enter = 按下 enter 鍵,Ctrl = 按下 ctrl 鍵,Alt = 按下 alt 鍵,如果是大寫字母例如G = shift + g,Ctrl w j = 按著 ctrl 鍵不放,再按下 w,再按下 j
- 這裡提到的都是 Vim 或是 plugin 內建的指令,如果你不喜歡或覺得難按,可以透過修改
.vimrc
來改變快速鍵的對映 - 以下指令都是在一般模式(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 y或Y = 複製游標所在的這一整行
- p、P = 在游標之後、之前貼上複製的內容
- " a y y = 跟y y有點像,但是是把複製的東西放到
a 暫存器
裡,這個a
可以用其它 25 個英文字母代替,可以用:reg
指令把目前的暫存器叫出來看 - " a p = 在游標之後貼上
a 暫存器
裡的內容
模式切換
- Esc 或 Ctrl [ = 回到命令模式,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 Text Objects: The Definitive Guide
- Learn to speak vim – verbs, nouns, and modifiers!
- 大家來學 Vim,雖然是將近 10 年前的文件,但很多還是適用
Vim 的快速鍵組合如果用得熟的話,整個編輯的過程中是幾乎可以不動到滑鼠的,不過還是要多練習啦,差不多練到跟吃飯睡覺一樣熟練就可以了。打完收工 :wq