12

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

ex) public void function(int valule123)

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

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

4

6 回答 6

29

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

查看:help text-objects完整列表。

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

于 2013-09-19T02:13:25.030 回答
16

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

于 2013-09-19T16:18:05.720 回答
12

如果你:help daw在 Vim 控制台中输入,你会看到它的意思是“删除一个单词”。所以,“a”在这里表示a。更多来自文档:

例如,比较“dw”和“daw”:“dw”从光标位置删除到下一个单词的开头,“daw”删除光标下的单词及其前后的空格。

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

于 2013-09-19T01:53:41.233 回答
3

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

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

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

于 2020-11-22T16:03:47.313 回答
0

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

  1. 查找:/deleting-word并光标在删除词的末尾。
  2. on -- INSERT --,组合 [ ctrl + w ] 删除该单词,或继续删除多个单词。
于 2020-03-10T05:02:12.303 回答
0
  • lbce如果您想更改英文句子中的一个单词,尽管光标在您要删除的单词中的位置,它可能会很好地工作。
于 2021-09-19T11:29:48.117 回答