如果“dw”只删除单词的一部分,那么“daw”在Vim中删除单词是如何工作的?

ifsvaxew  于 2022-12-23  发布在  其他
关注(0)|答案(7)|浏览(327)

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

ex) public void function(int valule123)

当我把光标放在“2”上,然后输入“dw”,只删除了部分关键字,结果是“valule 1”,为什么?
我尝试了另一个命令,“daw”。在这种情况下,结果正如所料!但是“a”是什么意思呢?我想“a”是“add”的意思。

qoefvg9y

qoefvg9y1#

Vim中的命令/动作/动词d作用于一个对象。对于dw,对象是“使用w命令光标移动过的所有文本”。对于daw,实际上使用的是一个称为“文本对象”的Vim概念。有很多这样的对象,包括aw(单词)、as(句子)、i}(内部{...}块,例如C代码中块内的代码)、it(内部标记,用于类似XML的语言)等。
完整列表参见:help text-objects
它们不仅可以被d命令使用,也可以被任何带对象的命令/操作/动词使用,例如,=aB将重新缩进整个代码块,cas将删除一个句子并进入插入模式键入一个新句子,yit将拖动/复制当前XML标记中的所有内容。

sycxhyv7

sycxhyv72#

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

wfsdck30

wfsdck303#

如果你在Vim控制台里输入:help daw,你会看到它的意思是“删除一个单词”。所以,'a'在这里的意思是 a。更多来自文档:
例如,比较“dw”和“daw”:“dw”删除从光标位置到下一个单词的开头,“daw”删除光标下的单词及其前后的空格。
如果你不想删除它后面/前面的空格,你可以使用diwdelete inner word)。

ddarikpa

ddarikpa4#

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

  • d:删除
  • i:内部/内部
  • w:字

另一个有用的用法是ciwchange internal word),用于删除单词并进入插入模式。

u0sqgete

u0sqgete5#

如果我知道要删除的单词,我的删除流程将是:
1.找到:/deleting-word并将光标置于删除词的末尾。
1.在-- INSERT --上,组合键[ctrl+w]删除该单词,或继续删除多个单词。

q0qdq0h2

q0qdq0h26#

  • 如果你想改变英语句子中的一个单词,不管光标在你想删除的单词中的位置在哪里,lbce都可以很好地工作。
z18hc3ub

z18hc3ub7#

当在dw周围导航时,dw将删除一个单词。当然w将从一个单词的第一个字符导航到下一个单词,而b将从上一个单词导航,等等。
假设你使用导航键j,k,h,l(下、上、左、右),如果你在一个特定字符的单词中,你可以键入d来删除,然后键入l,右边的字符将被删除,或者键入h,左边的字符将被删除。当你的手指实际放在键上时,这会更直观😄

相关问题