在vim中,如何删除一个单词?

22

我床上有一只大熊。

假设我光标在单词“bear”的“e”位置,如何完全删除单词“bear”?


2
可能是 在VIM中删除光标后或周围的单词 的重复问题。 - Fred Foo
1
这个问题涉及到NORMAL模式,而不是插入模式。 - Luc Hermitte
4个回答

39
你可以尝试查看这个链接:在VIM中删除光标后面或周围的单词,似乎与你需要的相似。
正常模式:
    daw : delete the word under the cursor    
    caw : delete the word under the cursor and put you in insert mode

是的,这就是他需要的。当光标在单词内部时删除整个单词。 - sica07
2
请问您能解释一下这个实际上是如何工作的吗?d或c是动词,a是什么,w是单词。 - Dennis
1
@DennisHodapp,a代表“around”。daw删除光标下的单词以及单词前后的空格字符。 - vasuki

22

按下b键可以跳到当前单词的开头,然后使用dw可删除当前单词。


7
@TIMEX -- 不,一点也不傻,这只是一种不同的思维方式,与“daw”一样好。 - Herbert Sitz
1
文本对象确实很棒,但这并不意味着其他方法都是“愚蠢”的。 - Drasill

10
作为larsmans答案 的替代方法,您可以使用b回退,然后dt空格删除下一个空格之前的所有内容:dt空格
这个记忆法更通用,您可以将其与多个分隔符一起使用。
如果您想向后删除,请使用dT空格
要了解更多左右运动,请使用:he left-right-motions 并阅读本章末尾。

+1 不确定它是最适合这种情况的,但它应该会派上用场。有没有办法反向执行此操作,以便我们可以删除到前一个空格/字符? - Ross Fuhrman
1
@The Talking Walnut:没问题。已更新答案。 - eckes

9

diw/daw ! -> :h text-objects

这里不再使用bdt/bdw


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接