幾年前就有嘗試過要學這個人稱文字編輯器的「上古神獸」,因為受到了幾個在 Youtube 上看的影片1影響。覺得學會這東西好像蠻帥的。起碼有點像駭客或是程式很厲害的人 (但我都不是:~) 經歷了好幾次使用與放棄,最近終於覺得我對這個工具越來越上手。
先說會用 Vim 的好處。
Vim 的好處
- 它無所不在:應該除了 Windows 以外,在各大 Linux 或是 MacOS,Vim 都是已經安裝好了的。所以,尤其是常需要登入到遠端主機修改設定,會用 Vim 的話每個環境都可以直接把它叫出來用。
- 它真的無所不在:各種其他文字編輯器,尤其視窗版,都會內建或支援使用 Vim 的使用方式。像是 VS Code 就有發展很成熟的 Vim 外掛。而 Obsidian 更是把它直接內建。而且,其他像是網頁瀏覽器,也有許多 plugin 支援在瀏覽網站時,使用 Vim 操作方式2。或像是 Terminal 裡,也有使用 Vim 操作概念的,像是有名的檔案管理 Ranger、郵件程式 Mutt 等等。等於學了一套方法,可以用在超多地方。
- 節省體(手)力:它操作的主要重心,就是雙手基本上放在打字區域就行了。不用使用滑鼠,不用方向鍵,也(比較)不用按 Ctrl Shift 之類的輔助鍵。所以其實就會帶到下一個特性…
- 人機合一(?):這可能是很多很會用 Vim 的人對它的形容。把一些常用的手勢內化後,很多游標的移動真的就變成不經思考的反射動作,有時候覺得像打電動一樣,會覺得用很簡潔的 combo 快速的做到想做的動作很爽快。這大概是 Vim 的擁護者最愛的一點。甚至有些人說,離開 Vim 他們就不會打字了。
- 高度自訂:它可以自訂的選項及範圍很大。雖然這有點雙面刃,因為有些預設設定沒有很好,所以不自訂蠻多地方會覺得卡卡的。但透過自訂,可以調整很多細節,和加入自己慣用的手勢等等。也因此網路上很多人分享自己的 Vim 設定檔。
中文輸入的問題
一開始卡關或覺得這東西應該不實用的原因之一是中文輸入的問題。Vim 裡的動作都是針對處理英文而設計的。加上它在兩個模式切換後,一般模式(Normal Mode)需要使用英文輸入操控,所以除了切模式,還要切換中英文。有點麻煩。
諮詢了 Claude 之後,它給我幾個解決方式。後來採用的是,加入一個輸入模式(Insert Mode)切換到一般模式的快捷鍵 jk。所以,當我要離開輸入模式的時候,首先要把中文輸入法切到英文(按一下 shift),然後再打 jk 即可。一方面可以確保到一般模式後,我已經是在英文輸入的模式。
其實也有 plugin 在解決這個問題的,似乎是會自動幫忙切換。後來使用這個方式是因為設定簡單,不用另外安裝外掛,在不同的主機間只要加入一行設定就可以。
中英文切換及模式切換的關卡過了之後,慢慢我才覺得它好用。現在甚至覺得編輯的時候,速度還有流暢感好很多。
學習資源推薦
- Vimtutor:在 terminal 上打 vimtutor 就會用 vim 開啟一個教學文件,可以在文件裡一邊練習操作。這是一般最推薦開始的地方。它也有中文版喔,只要執行 vimtutor zh 就可以了。可惜只有簡體中文。
- Vim Advantures:用遊戲來學 Vim 的基本操作,其實蠻好玩也蠻有用的。很推薦!
- 高見龍老師 Youtube:這次我比較徹底的學 Vim 主要是因為高見龍老師的影片。他講得蠻淺顯易懂的,而且有一種特別的幽默感。
- 英文資源:其實雖便遇到個問題,搜尋一下就會發現英文資源相當的豐富,許多問題也是早就都有神人整理好各種答覆。畢竟它是有長久歷史的神獸。所以,基本上不大用害怕沒辦法解決。
話說學了 Vim 好像應該要打字飛快,文章如雪片般飛來 (而且我還用嘸蝦米) 但其實這兩個月都沒打什麼文章,感到非常的心虛。我的興趣好像是把某個工具用到很熟,但是並不是為了有大量的產出,只是享受那個操作順暢的感覺而以。這還真是一大 bug。
照例,在最後還是期許我在會使用工具之餘,也能多多有實際產出。(音樂也是喔)🤯🤯🤯
-
Primagen 這位 Youtuber 似乎因為提倡 Vim 而也帶來些知名度。他很像 Borat ? ↩︎
-
我最喜歡的 Vim-style 瀏覽器外掛是 Surfingkeys,各大瀏覽器都有對應版本喔! ↩︎