VIM 的除了速度以外的優點

常常我們都以為用 Vim 是為了用超快速度來輸入文字, 或許可以透過不一樣的想法來思考。

假設一個情境,我想把某個 function 的參數改掉,那我的作法應該是

  1. 找到我要的那個括號
  2. 決定我要刪掉哪些參數以及新增什麼
  3. 把目標從從左到右框起來,精確的說是 反白
  4. 接下來按 delete 或 backspace
  5. 輸入新的參數
  6. 完成!

接下來我們來看一下如果是 Vim,我們的作法是

  1. 找到我要的那個括號
  2. 決定我要刪掉哪些參數以及新增什麼
  3. 刪除參數
  4. 輸入新的參數
  5. 完成! 好了,當殘酷的事實比較之下,發現差一步。

誒,差一步有很重要嗎?我的答案是:「有!謝謝」 為何? 這個動作在我們一天寫程式的行為裡面,出現過數次,如果你每一次都要把東西圈起來然後刪掉, 一次還好,但是十次真的會有點煩啊,你不止會改參數,你還會改字串內容、改變數名、再改註解, 刪整行,刪到底,改任何東西,這樣一直圈,你真的會受不了,你現在還沒受不了一定是你妥協了。 而且你會一直需要透過滑鼠來寫程式,這很不舒服啊,因為你的右手食指會在滑鼠左鍵及 J 之間滑動,

怎麼看都會增加右手的負擔。 最後一點,vim 可以透過手的反射來對程式操作這些程式碼,怎麼說呢?在選取這些程式碼的時候,眼睛和手就必須要專心的注意圈到哪,但如果透過 ci( 這類的指令,可以保證一定會把小括號的東西全部刪掉,不用透過眼睛和手的協調來確認,可以更專心在程式的本身,而不是編輯程式這個動作上。

總結一下,服了 vim 這帖藥,不一定可以讓你成為程式高手,但可以

  • 在處理煩人的鎖事,比別人不煩,如改字串內容
  • 讓你的右手食指可以有較長的時間在 J 上 透過反射神經來寫程式 ( 聽起來有點浮誇 )

如果你學會用 vim 的 text object,你這輩子不會想離開他了。

參考連結: Vim speed is not really the point

Scroll to Top