VIM:从当前位置删除直到空格


172

通常,在开发时,我会遇到一个嵌套对象,我想从代码的中间删除这样的嵌套对象:

htmlDoc.WriteLine("<b><h3>" + this.cbAllSyncs.SelectedItem.ToString() + "</h3></b>");

我要删除的部分是:

this.cbAllSyncs.SelectedItem.ToString()

我知道我可以计算单词和句点的数量,然后输入7dw以从我当前的光标位置“ this”中删除。但是,我不想做的事根本不必计算,只需使用一个命令即可删除该空间。这可能吗?

Answers:


343

尝试dtspace。通常dtx从当前位置删除,直到之前x。只需tx将光标移动到x当前行中的字符之前。

要最多删除并包括空格,请使用dfspace


2
这很棒!它还为我提供了一些更大的灵活性,可以到达该对象内的其他特定点。谢谢!
布莱克布莱克韦尔

27
df<space>最多删除并包括下一个空格。
格伦·杰克曼(

5
同样有用的是,dfT <space>删除到前一个空格。
hgmnz

3
您也可以在之前添加一个计数,t以删除最多个字符。例如d2t<space>将最多删除两个空格。
Waseem

7
我总是用助记符t“直到 stackoverflow.com/questions/7409134/...
ACW

71

如果您不想删除空格本身,则可以使用dWdE按照@glenn的建议进行操作。

WORD(大写W)由非空白字符的序列,用空格隔开的。

看一下动作这个


1
如果我能投票给我两个答案,我会这样做,因为这可以解决我提出的具体问题。感谢您的链接!
布莱克布莱克韦尔

5
dE-删除直到非空白字符序列的结尾(不包括以下空白)
glenn jackman 09年

@BlakeBlackwell谁说您不能投票给两个答案?我已经在这个问题上做到了。这是有用的信息。
javadba

20

一种可能的解决方案是将删除与搜索一起使用。

所以输入,d/<space>vim将删除,直到出现空格为止。


2
这比一般意义上的要广,dW因为您还可以使用它从光标中删除任何字符,例如2d/+,在这种情况下-也会删除String串联。
戴夫·贾维斯

1
您可以做2dW,而且效果也一样。实际上,我认为这是一个更好的解决方案,因为它也可以用于制表符和其他空格。它还会删除您要删除的尾随空格。
barkmadley

15

如果要从WORD内的任何位置删除,并且只需一个命令,只需使用 daW

daw如果您想限制一个字,当然可以使用)

我经常使用它,因为它避免了单词开头的问题(在您的情况下)


daw和daW对我的行为相同-无论我的光标位于哪个字母,都删除整个单词。不知道为什么。
2016年

daw不会删除单词后的空白,而daW将
Louis

4
  • 将当前位置删除为特定字符示例“

    dt“
  • 从打开的位置光标中删除单词,直到单词结尾

    dw
  • 无论光标在单词上的位置如何,都将删除光标所在的整个单词,这也会使您进入插入模式,以便立即插入。

    w

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.