vim搜索和复制包含模式的行

时间:2018-09-19 19:36:39

标签: vim

我使用以下VIM命令,将包括模式的所有行复制到文件末尾 :g/pattern/t$
但是我也想复制匹配行的上一行或下一行

1 个答案:

答案 0 :(得分: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$