如何删除Vim中的单词

时间:2013-09-19 01:48:56

标签: vim

我是vim用户,我想删除一个关键字。我总是使用“dw”删除特定的关键字,但有时候效果不好。例如,我想在示例程序中删除“valule123”。

ex) public void function(int valule123)

当我把光标放在“2”上,然后输入“dw”时,只删除部分关键字,结果为“val1”。为什么呢?

我尝试了另一个命令,“daw”。在这种情况下,结果与预期一样!但“a”是什么意思?我认为“a”的意思是“添加”。

5 个答案:

答案 0 :(得分:16)

Vim中的命令/ action / verb d作用于对象。对于dw,对象是“光标使用w命令移动的所有文本”。对于daw,您实际上正在使用称为“文本对象”的Vim概念。其中有很多,包括aw(一个单词),as(一个句子),i}(内部{...}块,例如C代码块中的代码) ,it(内部标记,对类似XML的语言很有用)等等。

有关完整列表,请参阅:help text-objects

这些不仅可以由d命令使用,还可以由任何带有对象的命令/动作/动词使用。例如,=aB将重新加入整个代码块,cas将删除一个句子并将您切换到插入模式以键入新的代码块,yit将对当前内容中的所有内容进行抽取/复制XML标记。

答案 1 :(得分:10)

dw:将光标中的单词删除到单词的末尾。
daw:删除光标下的单词。
还有写caw的选项,这个和daw一样,但也让你进入插入模式。

答案 2 :(得分:8)

如果您在Vim控制台中输入:help daw,您会看到它意味着“删除一个字”。所以,'a'在这里意味着 a 。更多来自doc:

  

例如,比较“dw”和“daw”:“dw”从光标中删除   位置到下一个单词的开头,“daw”删除下面的单词   光标和它之前或之后的空间。

如果您不想删除之前/之后的空格,可以使用diw删除内部字)。

答案 3 :(得分:0)

如果我知道要删除的单词,我的删除流程将是:

  1. 找到:/deleting-word并将光标放在删除单词的末尾。
  2. -- INSERT --上,组合使用[ ctrl + w ]删除该单词,或继续输入多个单词。

答案 4 :(得分:0)

在这些情况下,您始终可以使用:diw那样,将光标移到单词上的任何位置都无所谓,它将始终删除整个单词。

  • d:删除
  • i:内部/内部
  • w:单词

另一个有用的用法是ciw更改内部单词)以删除单词并进入插入模式。 干杯!