我的menu.vim文件中有多个python脚本 我想将它们复制到剪贴板。
所有python脚本都是这样的:
python3 << endpython
.......code......
endpython
我使用此搜索命令:
^python3\_.\{-}\_^endpython
在我看来,即使没有突出显示所有行,也是正确的命令(可能是因为脚本比我的屏幕显示更长)。
但是如何将多行搜索复制到剪贴板? 这是要走的路吗?
g/pattern/y A
答案 0 :(得分:4)
您可以使用:
:g/^python3/,/^endpython/y +
我认为这里的“缺失部分”是您可以使用特殊的+
和*
寄存器与剪贴板进行交互。请参阅:help quoteplus
和:help quotestar
。
另请参阅How can I copy text to the system clipboard from Vim?以获得有关Vim和剪贴板交互的更深入说明。
答案 1 :(得分:4)
你是对的;解决方案涉及:global
(迭代所有匹配的范围)和大写寄存器(以累积范围):
:let @a = '' | global/^python3/,/^endpython/yank A
如果您需要系统剪贴板中的结果,可以通过
执行此操作:let @+ = @a
如果这些多个命令太麻烦,我的PatternsOnText plugin提供(以及其他)此快捷命令:
:YankRanges/^python3/,/^endpython/ +