【问题标题】:VIM: Deleting from current position until a spaceVIM:从当前位置删除直到空格
【发布时间】:2009-10-22 15:08:50
【问题描述】:

在开发过程中,我经常会遇到一个嵌套对象,我想从代码中删除它,如下所示:

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

我要删除的部分是:

this.cbAllSyncs.SelectedItem.ToString()

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

【问题讨论】:

    标签: vim


    【解决方案1】:

    试试 dt空格。通常 dtx 会从当前位置删除直到 x 之前。只需 tx 将光标移动到当前行中字符 x 之前。

    要删除直到并包括空格,请使用 dfspace

    【讨论】:

    • 这很好用!它还为我提供了一些额外的灵活性,可以到达该对象中的其他特定点。谢谢!
    • df&lt;space&gt; 删除直到并包括下一个空格。
    • 同样有用,dfT 删除到前一个空格。
    • 您还可以在t 之前添加一个计数以删除最多那么多字符。例如d2t&lt;space&gt; 最多会删除两个空格。
    • 我总是使用助记符t作为'till stackoverflow.com/questions/7409134/…
    【解决方案2】:

    如果您不想要,您可以使用 dWdE 作为@glenn 的建议删除空间本身。

    WORD(大写 W)由一系列非空白字符组成,以白色分隔 空间。

    看看word motions

    【讨论】:

    • 如果我可以投票给两个答案,我会的,因为这解决了我提出的具体问题。感谢您的链接!
    • dE -- 删除到非空白字符序列的末尾(不包括后面的空白)
    • @BlakeBlackwell 谁说你不能投票给两个答案?我已经在这个问题上这样做了。这是有用的信息。
    【解决方案3】:

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

    所以输入d/&lt;space&gt;,vim 将删除直到它碰到一个空格。

    【讨论】:

    • 这比dW 更通用,因为您还可以使用它从光标删除任何字符,例如2d/+,在这种情况下 - 这也会删除字符串连接.
    • 你可以做 2dW,它的表现也一样。事实上,我认为它是一个更好的解决方案,因为它也适用于制表符和其他空白。它还会删除您要删除的尾随空格。
    【解决方案4】:

    如果您想从 WORD 内的 anywhere 中删除,并且在单个命令中,只需使用 daW

    (如果你想限制一个单词,当然可以使用daw

    我经常使用它,因为它可以移动到单词的开头(在你的情况下)

    【讨论】:

    • daw 和 daW 对我来说表现相同 - 无论我的光标在哪个字母上,都删除整个单词。不知道为什么。
    • daw 不会删除单词后面的空格,而 daW 会
    【解决方案5】:
    • 删除当前位置到特定字符示例"

      dt"
    • 从光标所在的位置删除单词直到单词的结尾

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

      diw

    【讨论】:

      【解决方案6】:

      dtspace 是您问题的答案,但 df+ 看起来会更好地解决你的问题。

      【讨论】:

      • 它对我没有任何作用。
      猜你喜欢
      • 2017-12-04
      • 2015-02-13
      • 2011-10-21
      • 2012-02-09
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-02
      相关资源
      最近更新 更多