我有光标在t
,我想从t
到};\n
删除所有这些代码而不计算行数。
我怎样才能实现它?是否比 d / } ; $ / <更清洁/ KBD> 电子
tabControl.PropertyChanged += (s, e) =>
{
...
};
如果重要,那就是C#。
答案 0 :(得分:4)
这是一种更简洁的方法,可通过3个步骤获得所需的输出:
<强> 1 即可。首先在正常模式下单击 d d 以删除第一行:
tabControl.PropertyChanged += (s, e) =>
因此,下面的行将向上移动光标所在的位置
{
请注意,光标必须放在开头 {中,以便您可以使用%
命令,如您将在第2步中看到的那样
<强> 2 即可。键入 Shift + v %(对于选择),这样您就可以确定确切的块 {
将被选中{
...
};
注意: V
(大写)不是 v
两个命令之间存在差异
v 每个角色启动可视模式。
V 按行启动可视模式。
第3 即可。然后键入 d :删除所选块
所以序列将是 d d Shift + v % < KBD> d
您还可以通过在命令行中输入
来查看帮助以查看%
实际执行的操作
:help %
%:在此行之后或之下查找此行中的下一个项目 该 光标并跳转到它的匹配。 |包容|运动。 物品可以是: ([{}])括号或(卷曲/方括号)括号
我尝试强调一些有用的命令,但如果您确切了解 V
和 %
,您可以直接选择整个块您想要删除或修改
答案 1 :(得分:2)
最快的方式可能是Vj%d
,但请参阅下面的更多选项,这些选项在很多情况下都有效。
V
=输入Visual line mode。j
=记下一个字符。%
=转到匹配的大括号。d
=删除选择。或者,如果lambda中没有空行,但后面有一个空行,我会使用d}
(}
转到'段尾',这通常意味着下一个空行)或dap
(neumonic:'删除所有段落',可以在'段落'的任何地方使用,假设你的函数前后都有空行)。 dap
对于删除短代码块非常有用。
另请注意,如果嵌套的lambda由};
终止,则您的解决方案将无效。