4

我一开始有光标,t我想删除所有这些代码,t};\n不用计算行数。

我怎样才能实现它?有比 更清洁的方法d/};$/e吗?

tabControl.PropertyChanged += (s, e) =>
{
    ...
};

如果重要的话,这就是 C#。

4

2 回答 2

4

这是通过 3 个步骤获得所需输出的更简洁的方法:

1 . 首先在正常模式下单击dd以删除第一行:

tabControl.PropertyChanged += (s, e) =>

结果,下面的行将向上移动光标所在的位置

{

请注意,光标必须放在开头{这样您就可以使用%命令,如您将在第 2 步中看到的那样

2 . 键入Shift+ v %(用于选择),这样您就可以确定将选择确切的块{}

{
    ...
};

注意:是V大写v这两个命令没有区别

v 按字符启动可视模式。

V 逐行启动可视模式。

3 . 然后键入d:删除选定的块

所以序列将是dd Shift+v %d

%您还可以通过在命令行中键入来查看帮助以了解实际操作

:help %

%:在光标之后或光标下查找此行中的下一项并跳转到其匹配项。|包含| 运动。项目可以是:([{}]) 括号或(大括号/方括号)

我试图在一些有用的命令下划线,但如果你完全理解V%做什么,你可以直接选择你想删除或修改的整个块

于 2016-06-24T01:32:52.360 回答
2

最快的方法可能是Vj%d,但请参阅下面的在许多情况下有效的较短选项。

  • V= 进入视觉线模式
  • j= 下降一个字符。
  • %= 转到匹配的大括号。
  • d= 删除选择。

或者,如果 lambda 中没有空行,但后面有一个空行,我会使用d}( }is go to 'end of paragraph',这通常意味着下一个空行) 或dap(neumonic: 'delete all paragraph ',假设您的函数前后有空行,则适用于“段落”中的任何位置)。dap对于删除短代码块非常有用。

另请注意,如果嵌套的 lambda 以};.

于 2016-06-24T01:55:04.530 回答