VIM:如何在正常模式下从行尾删除3个单词?

时间:2013-01-20 18:11:26

标签: vim

什么是最短的组合?

P.S。我通常做 A Ctrl + w Ctrl + w Ctrl + w Esc
换句话说,我必须跳转到插入模式。

P.P.S。 d 3 b 不起作用。

5 个答案:

答案 0 :(得分:9)

$ 3 b D translates

  • $ 到一行
  • 3 三个下一个
  • b 向后三个[一个没有修饰语]单词
  • D 删除光标下的字符,直到行尾

此外,您还可以在ex模式下使用normal命令来实现相同的

:norm! $3bD

答案 1 :(得分:7)

这一系列命令,

$3bD

是我能想到的最短的方式,但它留下了一个丑陋的尾随空间。

$3gelD

是摆脱尾随空间的另一种方式。

您也可以在框外思考并使用空格而不是单词:

$3F D

答案 2 :(得分:4)

$ 3BD

或者

$ 3bDx

...如果您还想删除尾随空格。

答案 3 :(得分:4)

转到该行的末尾,返回3个字,然后删除到该行的末尾: $ 3 b < KBD> d

转到行尾,删除3个单词,然后删除多余字符: $ 3 d b x

答案 4 :(得分:4)

正如其他人所提到的,$3bD是最短的,$3bDx足以删除剩余的空格,假设它只是一个空格或制表符。

为了考虑所有空格,可以使用$3gelD。在大多数情况下,此选项具有正确清理的优点,但当一行包含正好3个单词时,它会失败,因为3ge运动会跳回到上一行。

另一种方法基于daw。由于3daw向前发展,因此必须使用$daw..$3b3daw。对于3个单词,$daw..更短,可能更合适,但$3b3daw更像Vim-esque,可以轻松扩展为更多单词。

bgew可以替换为BgEW,以便删除WORD而不是词语的