线性包含删除模式

时间:2012-08-25 16:49:47

标签: vim

假设您要从其名称中删除 C 函数,并且包括具有结束卷曲的行:

int main (void)   /* Cursor on this line. */
{
   while (...) {
      ...
   }
}

我已经尝试了d/^}<CR>,但这并没有删除关闭卷曲的行。如何删除包含查找模式?我一定很遗憾。

编辑您可以假设函数的结束卷曲位于一行的开头,其他卷曲从不。

4 个答案:

答案 0 :(得分:6)

我刚刚进行了快速搜索,找到了/运算符here偏移量语法。

d/^}/0

为我做了诀窍。它的意思是“找到匹配的模式,然后选择它之后的第0行的末尾”(即它找到的行的结尾)

答案 1 :(得分:4)

使用V][d

这意味着:

  • V :以可视模式进入。
  • ] [:移至下一个}
  • d :删除所有视觉选择。

答案 2 :(得分:3)

您的命令不适用于具有嵌套大括号的函数。我会删除第一个带有0d]]的“{”,然后删除daB以删除该块。

新vimmers的详细信息:第一个命令中的'0'确保您在编辑d命令之前处于行的开头。 ']]'是一个让你进入下一个块的动作,'aB'是一个选择整个块的选择动作,包括嵌套块。所以0d]]daB表示从行的开头删除到下一个块,然后删除块。

答案 3 :(得分:1)

你可以jVaBokd

j - 向下移动

VaB - 外部块上的可视线选择

o - 移动到视觉选择的另一端

k - 向上移动

d - 删除选择