2011-02-04 127 views
5

作爲新手vim用戶,我用d[count]<Enter>來刪除行。
它使我感到奇怪,總有count + 1行被刪除。
如果我想刪除2行,我輸入d1,三線花d2,...區別:d [count]和d [count]

我終於花時間試圖瞭解爲什麼,看來我應該一直在使用:d<count>

但這不過乞討的問題,爲什麼是:d1<Enter> <>d1<Enter>

回答

11

d<count>在正常模式下不會做任何事情,因爲計數後面沒有運動。所以大概你已經擊球d<count><Enter>,在這種情況下,與d相關聯的動作是<count><Enter>,這會使<count>線向下移動。由於<Enter>是一個直線運動,因此d也將是linewise,從當前行到行<count>下行(包括兩端)刪除所有行。

實際上想要的命令是<count>dd

+0

+1您認爲是正確的。謝謝。 – 2011-02-04 09:18:54

+1

很好的解釋,我在正常模式下反覆嘗試`d1`,但沒有成功...我不知道' dd`我正在使用`d j`或`d k`總是缺少一個計數Vim有趣的是,總是有多種方式來實現相同的目標。 – 2011-02-04 09:28:16

4

d{motion}刪除{motion}移動的文本。當您鍵入3<ENTER>時,光標在當前下移動3行,因此d3<ENTER>刪除該區域。

:d[count]只是刪除[count]行。

區別在於{motion}count不一樣。

爲了解決這個問題,您可以使用visual模式並選擇要刪除的內容,然後只需按d即可。

相關問題