我可以找到执行此命令的空行:g / ^ $。如何扩展此命令以在确切的空行之前和之后打印1行(2行等)?
答案 0 :(得分:3)
:g/^$/.,+2p
将打印每个空行和下面两行。如果您还想要行号,请使用:#
代替:p
。
请注意,如果匹配的行是最后一行,这将不起作用。
请参阅:help :p
,:help :#
和:help :range
。
答案 1 :(得分:2)
您可以使用相对寻址,然后发出两个:print
命令,一个用于之前的行,一个用于空行之后的行:
:g/^$/-1print|+2print
这也可以扩展到多行;这里有两个:
:g/^$/-2,-1print|+2,+3print
这可能会在开头或结尾给出E16: Invalid range
。您可以通过:silent! unsilent ...
:g/^$/silent! unsilent -2,-1print|silent! unsilent +2,+3print