代码之家  ›  专栏  ›  技术社区  ›  Matt Greer

命令删除整个方法?

  •  5
  • Matt Greer  · 技术社区  · 14 年前

    我在VS2010中使用viemu。是否有可靠的命令删除C源代码中的整个方法?

    以下是我尝试过的:

    • 运动指令 } ]] 没有足够的智慧去选择一种方法。尽管有时它们确实会抓取正确数量的文本。

    • 在我能做的方法范围内 diB 它将删除方法的整个主体。这还不算太糟,但我要删除签名和外括号。

    • 如果我将光标移到可见性修改器(即 public , private ,等)然后 d* ,如果下一个方法具有相同的可见性,它将杀死整个方法。

    任何vi/viemu专家都有办法做到这一点吗?

    3 回复  |  直到 14 年前
        1
  •  2
  •   cdhowie    14 年前

    在维姆,我就是这样做的。我不确定viemu是否足够兼容,但是:

    1. 移到方法声明的开头(可访问性修饰符等)。
    2. 击中 进入视觉模式。
    3. 将光标放在开始方法体的大括号上。
    4. 击中 % 将光标移动到匹配的大括号。
    5. 击中 删除选定的所有内容。

    它不是超级自动的,但一旦肌肉记忆开始,它就会工作,而且相对容易做到。

        2
  •  2
  •   Ted Naleid    14 年前

    我喜欢用 zadd 折叠并删除该折叠(也会得到声明)。

    如果您在要删除的method/if语句的级别内,另一种方法是 da{dd 我觉得这比其他建议更容易输入。上面写着删除 { 光标当前所在的括号对,然后 dd 删除剩余的函数声明。

    如果在某个方法中嵌套在控件结构中,则可以在该方法之前放置一个数字,以将多个级别向上删除。

        3
  •  1
  •   chris    14 年前

    dap (删除段落)对于不包含空行的简单方法有效。对于包含空行的方法,您将需要使用 diBdap (删除内部块,然后删除段落)。为了便于使用,可以在rc文件中创建映射。前任: :nmap <C-d> diBdap

    推荐文章