2013-01-20 35 views

回答

7

命令序列,

$3bD 

是做到這一點,我能想到的此刻的最短途徑,但它留下了一個醜陋的尾隨空格。

$3gelD 

是擺脫尾隨空間的另一種方式。

您還可以條條框框,用空格代替文字遊戲:

$3F D 
+1

最後一個可能不一樣,因爲它可能更接近於使用WORD邊界而不是字邊界(使用'ge'&'b')。 –

+0

它修復了尾部空白問題。 – romainl

+1

@romainl如果單詞由製表符或多個空格分隔,$ 3F D'將不起作用。 「$ 3bDx'稍好,但你對'$ 3gelD'的其他建議可能是最好的。 '$ 3b3daw'確實是一樣,但更長; '$ daw..'是一個有趣的選擇。 –

4

$ 3BD

或者

$ 3bDx

...如果你也想刪除尾隨的空間。

4

轉到線的末端,回去3個字,然後刪除該行的末尾:$bd

轉到末尾刪除3個字,然後刪除多餘字符:$dbX

9

$bdtranslates

  • $到行
  • 01的末尾
  • 3任何的是下一個
  • b向後3 [一個沒有改性劑]詞語
  • d刪除光標下的字符,直到該行的末尾

另外,您還可以使用在ex模式下的normal命令來實現相同的功能

:norm! $3bD 
4

正如其他人所說,$3bD是最短的,$3bDx將足以刪除剩餘的空白,假設它只是一個空格或製表符。

爲了佔所有空格,可以使用$3gelD。此選項在大多數情況下具有可以正確清理的優點,但是如果一行只包含3個單詞,則會失敗,因爲3ge動作會跳回到上一行。

另一種方法是基於daw。由於3daw正向轉發,因此必須使用$daw..$3b3daw。對於3個單詞,$daw..更短,可能更合意,但$3b3daw更具Vim式,可以輕鬆擴展到更多單詞。

bge,和w可以與BgEW爲了刪除單詞代替詞語來替換。

+2

不幸的是,'$ daw..'只適用於不使用'virtualedit'選項。隨着對「全部」或「更多」的虛擬化,替代方案是「$ caw ..」。 –

+0

有趣;在那種情況下,'$ 3bDx'也會失敗。 –

相關問題