Vim 全名為 Vi IMproved,接下來的文章皆以小寫的 vim 稱呼
理論上應該不會有人第一個編輯器就是 vim 才對 ? 因為這實在不是初學者該學的東西
2018 年我初學 C 語言的時候,我也用過 Code::Blocks 和 Dev-C++ 這種比較陽春的 IDE
後來改用 Atom,把他當成我的主力編輯器
但其實在當時,我就對 Linux 和 vim 有很高的憧憬
我就常常在想,我以後要跳槽到 Linux,然後把 vim 當主力編輯器使用
為了提早練習,我還在我的 Atom 裡面裝 vim-mode 的插件,讓我可以提早習慣 vim 的指法
vim 有一個強大的地方,就是你永遠都有最好的按法,可以讓你穿梭在程式碼的任何地方
換句話說,一個字、一個單字、一行字、一個段落,都有辦法搭配上移動、新增、修改、刪除
這個好處不只讓你可以在 command line 執行 vim,甚至是你根本就不需要滑鼠了
否則以往我在寫程式的時候,對於移動這件事情,我是很依賴滑鼠的
我覺得這會影響到我 coding 的速度
因為工作的關係,我真的有機會接觸到 Linux server
另外我也需要學習 Docker 和 VM 的技術
而不管是 ssh 連線到遠端的 server 也好,或者進入 Docker container 拿到 shell
以上的共通點都是沒有圖形界面,只有一個 shell 能用
這時候如果對 vim 沒有基礎的認知,真的要用文字編輯器 ... 其實還有一個 nano 啦 ?
總之我想表達的是,今天只有 command line 界面的時候,vim 反而會變成不得不用的情況
很多人對於 vim 的認知是 : 難學、難用、入門門檻超級高,說真的一點也沒錯
但我覺得難用這點是有討論空間的,換句話說,是你能不能接受 vim 這種模式的操作 ?
比方說 Linux 的 man page 或 less 這種工具的瀏覽模式也是 vim 模式
當然情境單純多了,因為這種情況下就只對查看跟搜尋有需求,不用修改
另外隨手附上一張 vim 的圖,這是我寫文章的當下馬上拍的
我還是想說 :「我覺得 vim 不難用,這取決於你能不能接受 vim mode ?」
從截圖大概可以看出來,經過設定,我的 vim 其實和一般的 IDE 也有幾分相似
都有檔案樹、語法高亮、主題風格,而且我移動可以比別人快很多倍
畢竟我自己有備份需求,就隨手放在 GitHub 上公開了
另外,這也是 vim 的另外一個好處,假設我重灌電腦,我可以很快復原我的 vim
只要把 .vimrc 用 wget 抓回家目錄,然後跑一次插件的下載就搞定了
為什麼要用 vim ? 我認為這取決於你的需求,以上我把自己用 vim 的理由說了一遍
雖然光是我是 Linux 跟 command line 愛好者就已經加成不少了
但主要的原因還是想提昇 coding 速度,加上到真的只有 shell 的環境我也能適應自如
就算不把 vim 當主力編輯器,我覺得還是可以學基本的移動和改檔案就好
或者學個 nano ? 總之就用來應付沒有圖形界面的情況