【问题标题】:Vim - delete until (inclusive) character in multiple linesVim - 删除多行中的直到(包括)字符
【发布时间】:2013-11-26 01:14:47
【问题描述】:

我有这个代码:

def foo(c: Char) = c match {
    case 'a': 'B'
}

我的光标在= 之后的空格上。我想删除所有内容,包括}。我该怎么做?

我可以在光标位于第一行的任何地方做同样的事情吗?块中的任何位置(并将光标放在= 之后)?

【问题讨论】:

  • v-> j->j->d 可以完成这项工作

标签: vim vi


【解决方案1】:

试试这个:d%

d 用于删除,% 在大括号之间移动。

【讨论】:

    【解决方案2】:
    d/}/e
    

    完成这项工作。

    d/} 删除 直到 } 但添加 /e 标志将光标移动到匹配的最后一个字符,有效地删除光标和 } 之间的所有内容,包括。

    使用视觉选择也可以,以一种更直观的方式:

    v/}<CR>d
    

    【讨论】:

    • /e 似乎不适用于 IntelliJ IDEA vim 插件
    • 问题是关于 Vim。
    • 这是 vim 命令还是快捷键?因为 d} 快捷键删除了一个段落,而 :d/}/e 并没有真正做任何事情。
    • Vim 中没有“快捷键”的概念。 d} 是一个运算符,d 表示“删除”,然后是一个动作,} 表示“到当前段落的结尾”:它删除光标和} 可以找到的任何位置之间的所有内容。 d/}/e 是同一个运算符 d,然后是不同的动作 /}/e,用于“搜索下一个 } 并将光标留在 } 上。
    【解决方案3】:

    这应该可行:

    d}
    

    这会向前删除一个段落。

    【讨论】:

      【解决方案4】:

      您可以使用EasyMotion plugin 实现类似的目标。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多