我的menu.vim文件中有多个python脚本。
我想将它们复制到剪贴板。

所有的python脚本都是这样的:

python3 << endpython
.......code......
endpython

我使用以下搜索命令:
^python3\_.\{-}\_^endpython

在我看来,即使不突出显示所有行,这也是正确的命令(可能是因为脚本比我的屏幕显示还要长)。

但是,如何将多行搜索复制到剪贴板?
这是要走的路吗?
g/pattern/y A

最佳答案

你是对的;该解决方案涉及:global(迭代所有匹配的范围)和一个大写寄存器(累积范围):

:let @a = '' | global/^python3/,/^endpython/yank A

如果您需要系统剪贴板中的结果,可以通过
:let @+ = @a

插件替代

如果这些多个命令太麻烦了,我的PatternsOnText plugin提供(除其他外)此快捷命令:
:YankRanges/^python3/,/^endpython/ +

07-24 22:21