如何删除Vim中的单词

Aki*_*chi 5 vim

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

ex) public void function(int valule123)
Run Code Online (Sandbox Code Playgroud)

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

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

Ben*_*Ben 16

dVim中的命令/动作/动词作用于对象.对于dw对象是"所有的文字光标,同样的动作在w命令".因为daw你实际上使用的是一个名为"文本对象"的Vim概念.其中有很多,包括aw(一个单词),as(一个句子),i}(内部{...}块,例如C代码中的一个块内的代码),it(内部标记,对类XML语言很有用),等等.

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

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


dar*_*614 11

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


K Z*_*K Z 8

如果您:help daw在Vim控制台内键入,您将看到它意味着"删除一个单词".所以,'a' 这里意味着一个.更多来自文档:

例如,比较"dw"和"daw":"dw"从光标位置删除到下一个单词的开头,"daw"删除光标下的单词和它之后或之前的空格.

如果您不想删除之前/之后的空格,可以使用diw(删除内部单词).


Sam*_*Sam 6

对于这些情况,您始终可以使用:diw这样,无论光标位于单词上的哪个位置,它都会删除整个单词。

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

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