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