删除整个方法的命令?

时间:2010-11-24 18:24:03

标签: c# visual-studio-2010 vim viemu

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

以下是我尝试过的事情:

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

  • 从方法内部我可以diB删除整个方法体。这不是太糟糕,但随后我将删除签名和外括号。

  • 如果我将光标移动到可见性修饰符(即publicprivate等)然后执行d*,如果下一个方法有,则会终止整个方法相同的能见度。

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

3 个答案:

答案 0 :(得分:2)

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

  1. 移至方法声明的开头(辅助功能修饰符等)。
  2. v 进入可视模式。
  3. 将光标放在启动方法体的大括号上。
  4. 点击将光标移动到匹配的大括号。
  5. 点击 d 删除所有选中的内容。
  6. 它不是超级自动或任何东西,但它起作用,并且一旦肌肉记忆开始就相对容易。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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