如何在vim中将错误行和几行复制到文件末尾?

Sam*_*abu 1 vim

我在 ansible 日志中发现致命错误并将它们复制到文件末尾以查看所有致命错误。

:g/fatal:/t$
Run Code Online (Sandbox Code Playgroud)

但我想复制错误和下一行,因为下一行有时会被“忽略”,不需要考虑。我只能找到真正需要的致命错误

如何移动图案和更多的线条?在 grep 中我们可以找到 -A -B ,在 g 命令中有什么方法可以做到吗?

rom*_*inl 6

像所有继承自viand 的ex 命令一样ex:help :t可以采用:help :range. 在这种情况下,您希望对匹配的行和下面的行进行操作,这将转换为以下范围:

.,+1
Run Code Online (Sandbox Code Playgroud)

在哪里:

  • 逗号的左侧是第一行,
  • 右边是最后一行,
  • . 代表当前行,
  • +1 表示当前行下方的行,

这给了你这个命令:

:g/fatal:/.,+1t$
Run Code Online (Sandbox Code Playgroud)

请注意,这.是隐含的,+是 的快捷方式+1,因此可以缩短为:

:g/fatal:/,+t$
Run Code Online (Sandbox Code Playgroud)