我有一个大文件,我只想复制文件中与正则表达式(多行)模式匹配的部分。我在某个地方(可能是 StackOverflow)找到了我可以这样做的地方:
:g/z=45117\.1[0-9]\{2}nm\_.\{-}end/y
此模式找到了我期望的所有条目,但抽出操作仅抽出找到的第一个匹配项的第一行
我需要什么 vim 魔法来抽取多行模式的所有匹配项的所有行?
最佳答案
在命令末尾添加一个带空格的A
:
:g/z=45117\.1[0-9]\{2}nm\_.\{-}end/y A
它将模式拉入寄存器 a
,因此您可能希望在命令之前清除它:
:let @a = ''
关于regex - Vim 提取/复制文件中的所有多行模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57682481/