iT邦幫忙

0

[VSCodeVim] Vim的思維、哲學與解決問題之道

  • 分享至 

  • xImage
  •  

Vim的思維、哲學與解決問題之道


[系列文目錄]

每種工具都有它的設計理念,在接觸Vim的前後,我們會接觸大量的相關知識。

有幾個觀念與原則能幫助我們貫穿各個Vim的模式與命令操作,分別是:

  1. 先閱讀,再寫作。
  2. 用組合命令解決問題。
  3. 用更少的動作完成任務。
  4. 減少重複,提高效率。

底下我們分別詳述這四點。

一、先閱讀,再寫作。


日常的程式開發中,開發者花費大量時間瀏覽專案裡的檔案與相關程式,並在需要時透過滑鼠移動游標,移動游標以輸入新程式的頻率則相對比較低。Vim針對這種情況進行了優化,設計出了普通模式(Normal Mode)。此模式提供了許多命令,幫助我們有效將游標移動到目標位置,滾動頁面、搜尋文件等輔助閱讀與尋找的命令主要也都在此模式使用。

想像一下自己是一隻正在尋找獵物的老鷹。此時此刻正在天空翱翔,與此同時,我們保持開放的視野,俯瞰大地。一旦發現並鎖定目標,軀體便向下飛行至大地,一擊必殺,精準且不失優雅。同樣的,在普通模式裡面,我們先使用命令將游標移動至要修改的位置,之後我們進行相關操作。進入插入模式輸入一段新文字、使用cd等相關命令修改、刪除內容,或是r命令進行替換,視需要而定。

在《Practical Vim》一書裡,作者使用畫家作畫來比喻這些過程,畫家花時間構思整體畫作的佈局、光線、色彩,而後或使用鉛筆素描、或塗上特製的顏料、或用潑的、或用刻刀、或用其它工具,沒有說一定會使用畫筆。休息時,畫筆不會放在畫布上,這點與Vim的操作是相同的。

普通模式就是沒有對畫布進行操作時的自然狀態,在此狀態中我們放鬆地閱讀,想法與靈感在此階段自然浮現。而後選定目標,使用對應的方法修改畫布,實現想法。

二、使用組合命令解決問題


在Unix哲學裡,「Do one thing well」是被奉為圭臬的原則。Unix的shell提供各命令解決不同問題,Vim的各個模式與命令分別處理不同職責的操作,完美體現此原則。

各別的shell命令能夠被pipe語法組合起來,處理更大的任務與需求。同樣的,在Vim 裡面我們可以組合各個命令,處理不同情境。

舉個例子,當我們要刪除底下ag的文字,用單個命令是做不到的。

這時我們可以組合f(find)與d(delete)兩個命令。

● 使用Vim的搜尋命令


Vim 裡面有f ${目標字元} 命令,用於搜尋(find)目標字元,並將游標移至找到的第一個字元上。ㄌ

普通模式下,當我們對圖文字使用fg(find g),游標就會移動同一行的g上面。

● 組合f(find)與 d(delete)兩個命令


接著,回到行首。我們在fg 命令的前面加上d命令,也就是輸入dfg,就會刪除ag的字。結果如下圖所示。

很直覺地達成需求,是不是很方便呢?Vim有各種組合小功能解決大問題的方式,無法也不用急著一次學完。掌握心法,觸類旁通,是精通Vim的不二法門。


下篇: Vim的思維、哲學與解決問題之道 (二)

參考資源



圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言