5

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

以下是我尝试过的事情:

  • 运动命令}]]不够聪明,无法选择方法。尽管有时他们确实碰巧抓取了正确数量的文本。

  • 从我可以做的方法中,diB这将删除方法的整个主体。这还不错,但接下来我要删除签名和外括号。

  • 如果我将光标移动到可见性修饰符(即public,private等)然后 do d*,如果下一个方法具有相同的可见性,它将终止整个方法。

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

4

3 回答 3

2

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

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

它不是超级自动或任何东西,但它很有效,并且一旦肌肉记忆开始,它就相对容易做到。

于 2010-11-24T18:26:50.407 回答
2

我喜欢用zadd它来折叠它并删除那个折叠(这也会得到声明)。

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

如果您嵌套在方法中的控制结构内,则可以在其前面放置一个数字以删除那么多级别。

于 2010-12-01T21:59:26.020 回答
1

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

于 2010-11-29T22:02:43.313 回答