本節書摘來自異步社群《vim實用技巧(第2版)》一書中的第2章,第2.5節,作者:【英】drew neil(尼爾)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
在處理某些特定工作時,使用次數可以使按鍵次數變得最少,不過并不是非得這樣不可。我們需要認真考慮次數與重複各自的優缺點。
假設在緩沖區裡有如下文字。
<code>delete more than one word</code>
想把這段文字改為“delete one word”,也就是說,要像這段文字裡所講的那樣删除兩個單詞。
有幾種方式可以達到這一目的,d2w 和 2dw 都可以。使用 d2w,先調用删除指令,然後以 2w 作為動作指令,可以把它解讀為“删除兩個單詞”;然而 2dw 做的相反,這一次,次數作用于删除指令,而動作指令隻跨越一個單詞,可以把這解讀為“做兩次删除單詞的操作”。抛開語義不講,無論哪種方法,結果都是相同的。
現在,讓我們考慮另外一種方式,即dw.。這可以解讀為“删除一個單詞,然後重複上次的操作”。
概括一下,我們的3種選擇 d2w、2dw 或者 dw. 都是3次按鍵,不過哪一種最好呢?
根據我們的讨論,d2w 和 2dw 是相同的,在執行完兩者中的任一個後,可以按 u 鍵撤銷,這樣兩個被删除的單詞又會回來。或者,我們不是用撤銷,而是用 . 指令重複執行它,這就會删除後面的兩個單詞。
對于 dw. 的情形,按 u 或 . 的結果會有細微的差别。這裡的修改是 dw,即删除一個單詞。是以,如果想恢複這兩個被删除的單詞,必須撤銷兩次,按 uu(或者,如果你願意,也可以按 2u)。按 . 則隻删除後面的一個單詞,而不是兩個。
現在假設我們原本是想删除3個單詞,而不是2個。由于判斷出了點差錯,我們執行了 d2w 而不是 d3w,那接下來怎麼做?我們不能使用 . 指令,因為那會總共删除4個單詞。是以,我們或是先撤銷而後修正次數(ud3w),或是繼續删除下一個單詞(dw)。
現在考慮另一種方案,如果我們在第一處地方用的是 dw. 指令,那麼隻要再多重複一次 . 指令就行了。因為我們最初的修改隻是簡單的 dw,是以u 指令和 . 指令都具有更細的粒度,每次隻作用于一個單詞。
現在假設我們想删除7個單詞,我們可以運作 d7w,或是 dw......(即 dw 後面跟6次 . 指令)。計算一下按鍵的次數,哪個指令勝出是很顯而易見的。不過你真地确信自己數對了次數嗎?
計算次數很是讨厭,是以我甯願按6次 . 指令,也不願意隻為減少按鍵的次數,而浪費同樣的時間去統計次數。如果我多按了一次 . 指令怎麼辦?沒關系,隻要按一次 u 鍵就可以回退回來。
還記得嗎,我們的口訣是(參見技巧4):執行、重複、回退。這裡就是在把它付諸行動。
隻在必要時使用次數
假設我們想把文字“i have a couple of questions”改為“i have some more questions”,可以用下面的方式做。

在此場景中,使用 . 指令的意義不大,我們可以删除一個單詞,然後再用 . 指令删除另一個,但随後我們還得切換到插入模式(例如,使用 i 或 cw)。對我來說這麼做很不順手,我反而更願意用次數。
使用次數的另一個好處是:它保留了一個幹淨、連貫的撤銷曆史記錄。完成這次修改後,按一下 u 鍵就可以撤銷整個修改,這和技巧8中的讨論是一緻的。
對于是用次數風格(d5w)還是用重複風格(dw....)也有同樣的争論,是以我的偏好看起來似乎不太一緻。對此,你要總結自己的觀點,這取決于你怎麼看保留幹淨撤銷曆史記錄的價值,以及你是否覺得用次數令人生厭。