我知道我可以像这样将所有匹配的行猛拉到寄存器 A 中:
:g/regex/y/A
但我似乎无法弄清楚如何将匹配的正则表达式组猛拉到寄存器 A 中:
:g/\(regex\)/\1y A
(E10: \ should be followed by /, ? or &)
最佳答案
您可以使用替代命令执行此操作。
:%s/regex/\=setreg('A', submatch(0))/n
这会将 register a 附加到正则表达式匹配的任何内容。
n
flag 将在沙箱中运行命令,因此实际上不会替换任何内容,但会发生语句的副作用。你可能想先清空寄存器
:let @a=''
关于regex - vim 将 regex 组的所有匹配项拖入寄存器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23713617/