我是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标记内的所有内容进行抽取/复制.
如果您:help daw在Vim控制台内键入,您将看到它意味着"删除一个单词".所以,'a' 在这里意味着一个.更多来自文档:
例如,比较"dw"和"daw":"dw"从光标位置删除到下一个单词的开头,"daw"删除光标下的单词和它之后或之前的空格.
如果您不想删除之前/之后的空格,可以使用diw(删除内部单词).
对于这些情况,您始终可以使用:diw这样,无论光标位于单词上的哪个位置,它都会删除整个单词。
d: 删除i: 内部/内部w: 单词另一个有用的用途是ciw(更改内部单词)删除单词并进入插入模式。干杯!