vim删除lambda变量和块

时间:2016-06-23 21:23:30

标签: vim vsvim

我有光标在t,我想从t};\n删除所有这些代码而不计算行数。

我怎样才能实现它?是否比 d / } ; $ / <更清洁/ KBD> 电子

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

如果重要,那就是C#。

2 个答案:

答案 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由};终止,则您的解决方案将无效。