我為什麼想不開用 Vim 寫程式?¶
原文在 2023-04-22 完成
2001 年大學的 C 語言課程,老師要我們在實習課登入 Sun 主機,用 Vi 寫程式。雖然後來許多同學改用 nano ,但我還是堅持用 Vi,明明自己也覺得很難用,也許是高中時有很厲害的同學說他用 vim 寫程式,所以認為用 Vi 很酷吧。
也就只有 C 語言課程用 Vi,之後就沒有用了。幾年後開始工作,用 PHP 寫網站,我用 Windows 版本的 gvim,後來開始用 markdown 語法寫東西,而 Atom 內建 markdown 預覽功能,所以寫程式也改用 Atom,就這樣又過了幾年。
至此我的 Vim 技能僅停在相當粗淺的認識,只知道在 normal 模式用 :q
離開 Vim,:q!
不存檔離開 Vim,用 i
、a
、I
或 A
進入 insert 模式開始輸入,用 :w
存檔,以及一些設定選項。有一天好奇 Windows 程式集中 Vim 有哪些功能,就一個個用滑鼠點開來,意外打開 Vim Tutor(Vim 內建的教學文件),雖然跟著操作一遍,但我對 Vim 的操作仍停留在本段開頭的那些指令,沒有多大進步。
塞翁失馬,焉知非福。我的 MacBook Air 更新作業系統時,操作不慎,SSD 格式化了,又不想花錢去店裡重灌 OS X(要800元),想到之前看過 Ubuntu 14.04 有 Mac 版本,就想辦法裝上去。後來為了用 Laravel 6 寫程式,所以用 VirtualBox 新增虛擬機器,跑 Debian。
這時候遇到一個大問題:如果仍用 Atom 寫 PHP,首先 Atom 在當時的 Ubuntu 14.04 跑不動,程式直接當掉,改用 VS Code 也一樣,只能用 vim 或 gvim;另外需要用 rsync 不停同步 host 和 guest,導致 CPU 飆到 100%,筆電風扇不停地轉,Vagrant 也因為 Ubuntu 版本太舊無法安裝,實在不是辦法。改用其它編輯器嗎?之前趕流行還用過 TextMate 和 Sublime,上 Java 課用過 Eclipse ,一直換編輯器,我實在厭倦了,心想既然用 ssh 連進虛擬機器下指令,不如就在裡面用 Vim 寫程式好了,這樣就不用 rsync 同步程式碼,但是我的 Vim 技能實在很爛,怎麼辦呢?
為了一勞永逸,以後都用 Vim 做為主要編輯器,不如找一本書好好學會 Vim,在天瓏書局找到 Practical Vim 的簡體中文版本「Vim 實用技巧」,一邊操作、一邊認真看完書。Vim 的功能之強讓我驚呆了,慢慢開始習慣用 Vim 寫程式,最可怕就是手指下意識按照 Vim 風格操作,於是在 VS Code 輸入完程式碼會按下 Esc
再輸入 :w
存檔,然後發現:「奇怪,為什麼打好的 code 裡有 :w
在結尾?」接著啊一聲、嘆氣,然後苦笑。「啊,已經回不去了」,於是回去用 Vim。
Ubuntu 14.04 for Mac 沒有新的版本,2022 年 10 月,我實在受不了一大堆程式不支援,連瀏覽器都一直警告我不再更新,於是 Google 「install Linux on Mac」,發現可以在 Mac 上安裝 x86 版本的 Linux,當天真的裝起來後,遙想當初如果先 Google 一下,不急著裝 Mac 版本的 Ubuntu ,會怎麼樣呢?
現在筆電裝的是 Linux Mint 21 Xfce 版本,依然使用 Vim 寫程式,用 Obsidian 編輯 markdown 檔案寫部落格。為什麼不用 Vim 編輯 markdown?因為 Vim 已經有一堆模式要切換,再加上中文輸入法,實在太複雜了 。雖然有裝 VS Code ,但是不知道能拿它來做什麼。你說 VS Code 有 Vim 外掛,可是它缺少一堆功能,例如 :b 檔名
切換 buffer 和 :E
切換到檔案管理程式。後來聽說 Atom 和 Eclipse 有外掛可以連到伺服器上遠端編輯,用不著自己用 rsync 同步時,心痛了 3 秒。