2010-11-24 35 views
5

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

这件事情我已经尝试:

  • 的移动指令}]]不够聪明挑选出一个方法。虽然有时他们确实碰巧抓住了正确数量的文本。

  • 从刚才的方法我可以做diB这将删除整个方法的主体。这还不算太坏,但是我仍然要删除签名和外括号。

  • 如果我把光标移动到可视性修饰符(即publicprivate等),然后做d*,它会杀死整个方法,如果下一个方法具有相同的知名度。

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

+3

单击方法左侧的减号以折叠方法,突出显示整个折叠方法行,然后按Delete键。 – 2010-11-24 18:27:48

+0

这并不坏,你应该让这个答案。你也可以用`CTRL + M,M`折叠方法,然后从那里做`dd`。 – 2010-11-24 18:32:33

回答

2

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

  1. 移动到方法声明(辅助功能修饰符等)的开头。
  2. 点击v进入视觉模式。
  3. 将光标定位在启动方法体的大括号上。
  4. 点击将光标移动到匹配的大括号。
  5. 点击d删除所选内容。

这不是超级骗子自动或任何东西,但它的工作原理,是比较容易做到,一旦肌肉记忆踢。

+0

移动方法的第一行然后`^ vf {%d` – shellholic 2010-11-24 19:13:13

+0

不错,这是更加紧凑和可重复。人们可以写一个自定义命令来做到这一点。 – cdhowie 2010-11-24 19:27:32

1

dap(删除一个段落)会为不包含空的简单方法工作线。对于包含空行的方法,您需要使用diBdap(删除内部块,然后删除段落)。为了更方便使用,您可以在您的rc文件中创建映射。例如::nmap <C-d> diBdap

2

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

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

如果您嵌套在方法的控制结构中,您可以在它之前放置一个数字以删除多个级别。