C# 删除整个方法的命令?

C# 删除整个方法的命令?,c#,visual-studio-2010,vim,viemu,C#,Visual Studio 2010,Vim,Viemu,我在VS2010中使用viemu。是否有可靠的命令来删除C#源代码中的整个方法 以下是我尝试过的一些事情: 移动命令}和]不够智能,无法选择方法。尽管有时他们会碰巧抓到正确数量的文本 从方法内部,我可以执行diB,这将删除方法的整个主体。这还不算太糟,但我要删除签名和外括号 如果我将光标移动到可见性修改器(即public,private等),然后执行d*,如果下一个方法具有相同的可见性,它将杀死整个方法 任何vi/viemu专家都有办法做到这一点吗?在Vim中,我就是这样做的。我不确定vie

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

以下是我尝试过的一些事情:

  • 移动命令
    }
    ]
    不够智能,无法选择方法。尽管有时他们会碰巧抓到正确数量的文本

  • 从方法内部,我可以执行
    diB
    ,这将删除方法的整个主体。这还不算太糟,但我要删除签名和外括号

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


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

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

  • 移到方法声明的开头(可访问性修饰符等)
  • 点击v进入视觉模式
  • 将光标放置在开始方法主体的大括号上
  • 点击%将光标移动到匹配的大括号
  • 点击d删除所有选中的内容

  • 它不是超级自动的,但是一旦肌肉记忆开始,它就可以工作并且相对容易地完成。

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

    我喜欢使用
    zadd
    将其折叠并删除该折叠(这也将获得声明)

    如果您在要删除的method/if语句的级别内,那么另一种方法是
    da{dd
    ,我发现它比其他一些建议更容易键入。它说删除
    {
    光标当前所在的括号对,然后
    dd
    删除剩余的函数声明


    如果你嵌套在一个方法的控件结构中,你可以在它前面放一个数字来删除那么多级别。

    单击该方法左侧的减号来折叠该方法,高亮显示整个折叠的方法行,然后按delete键。这还不错,你应该回答这个问题。你也可以使用
    CTRL+M,M
    ,然后从那里开始执行
    dd
    。移动到方法的第一行,然后执行
    ^vf{%d
    Nice,这更紧凑、更可重复。可以编写一个自定义命令来实现这一点。您的答案在viemu中运行良好,但看起来不像shellholic的。我确实喜欢CTRL+M,M然后dd,但这是Visual Studio特有的,使用viemu的一个原因是帮助我从VS分支。实际上,我想我喜欢使用方法d签名,dd,d%。每次都是这样,而且非常快/简单。@马特:假设你把你的开放式花括号放在单独的一行上,是的,那会很好。你可能想澄清das是什么,否则这没有帮助。你能详细说明das吗?我知道
    d
    是删除命令,什么类型的移动是
    as?在viemu 2010和gvim 7.3 for Windows
    das
    中删除一个连续的文本块,因此如果该方法中有空行,它将在空行处停止。如果该方法中没有空行,
    das
    将正确删除它。(这在vim中有效,不确定VS,没有,但这些看起来像是它可能具有的非常基本的命令)这几乎在viemu中有效,它使您离开声明一行,因此基本上它变成
    da{kdd
    ,假设您在自己的行上有大括号。