在Vim中搜索并复制包含模式的行

3
我使用以下VIM命令,将包含某个模式的所有行复制到文件末尾::g/pattern/t$
但我还想将匹配行上一行或下一行也复制。
1个回答

4

输入:

:g/pattern/t$

:t 是一个 ex 命令,就像所有的 ex 命令一样,都可以使用范围。

下面的命令会将第 1-13 行复制到最后一行之后:

:1,13t$

除了绝对行号,您还可以使用相对行号:

:-3,+5t$

而且,任何可以转换为行号的内容都可以进行翻译:

:?foo?,'et$

在你的情况下,你可以使用范围来告诉Vim复制被标记的行,即上面的一行 (-1) 和下面的一行 (+1):

:g/pattern/-1,+1t$

或者稍微简短一些:
:g/pattern/-,+t$

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接