應該有些人和我一樣,對 Vim 有興趣但不知道怎麼入門,上網找半天還在看用哪個編輯器比較好。或找了教學記了一堆指令,也試著打了幾遍,但要用的時候總是不記得。
有人會直接把頭洗下去,強迫只用 Vim,只要活下來就學會了。但我想分享一個學習曲線比較平緩的方式。
快點開始練習
首先可以不用急著去找要裝什麼編輯器,先建立怎麼使用 Vim 的肌肉記憶,有很多可以線上練習的網站,我想推薦 COMMAND LAB(連結),我的經驗大概每天玩 10 ~ 30 分鐘,一星期就有肌肉記憶了。後來想想大概是因為它
- 互動性高,有模擬畫面
- 有情境容易代入
- 可以關閉提示,加強記憶
- 循環機制,讓練習不中斷
它單元安排地很好,循序漸近但又不無聊,重點是練習的時候有提示所以不會卡住,前面三個單元玩熟了,基本就上手了。
中間上面是情境,例如這裡就是怎麼把游標移到行尾,這個單元總共有 32 個情境,練習完就會從頭再來。下方是提示按 $ 中間的畫面游標真的會移到行尾,很有臨場感,打錯提示框還會震動(有趣吧)。左邊 Guide mode 關掉,提示會全部換成點,練到不用看提示基本就會了。右上角蠻有趣的,打對了經驗值會增加,還會升等像在玩遊戲。
再推一個單元,完成它會讓 Vim 用起來更順手,"vim 大師①習慣搬家"
編輯器
有了肌肉記憶再進入實際運用,就比較沒有挫折感。原先就有慣用編輯器的,可以先找找有沒有 Vim 擴充可以裝。像我有在用 VSCode 就先用它來裝擴充了,安裝 vscodevim
裝完擴充 vim 就生效了,它會吃掉一些原來的快速鍵設定,因為這些設定在 vim 是有其它用途的(例如 ctrl+c 複製就失效了),可以用 ctrl+shift+p
進入命令模式叫用 Vim:Toggle Vim Mode
,我推薦按右邊齒輪設用快速鍵
。alt+j alt+k
更新:發現 alt+j alt+k 在 vim 功能更深入的編輯器會負選單的上下移動,現在改用 alt+v alt+v
vim 的 v 感覺也蠻好記的,而且單手就能按。
為什麼是 jk 呢?因為它是 vim 使用者常設定的跳出插入模式(Insert Mode)的設定,一方面也是要找到和 VSCode 其它功能不衝突又有意義的鍵真的蠻難的。
這樣就能隨時打開 Vim 模式,卡到不行關掉就好了。
最後推一下 Easymotion,到檔案→喜好設定→設定,打開 Vim:Easymotion
回編輯畫面,NORMAL 或 VISUAL Mode 下輸入 \\\j
,會發現紅色的傳送門代碼,輸入後游標就會移過去。可到官網(連結)的 vim-easymotion 找到更多操作(<leader> 就是 \),Search n-character 也很棒。
我覺得 Vim 是一種很值得去嚐試、體驗的模式,例如會發現編寫的流程越是擺脫滑鼠越是容易專注,有點像一指神功 vs 盲打,一個要分心找按鍵,一個更專心在撰寫文件。