VIM:如何将具有子字符串的所有行复制到另一个文件/缓冲区?

时间:2011-07-25 19:43:42

标签: linux vim

我想在一个函数中搜索,并将在该范围内调用不同函数的所有行复制到另一个文件。我知道我可以通过视觉选择限制搜索的范围,搜索很容易 - 但是我没有方便的方法将所有搜索结果复制到任何缓冲区(我可以将其粘贴到另一个文件进行分析)。 .. 有人可以指出解决方案(我几乎可以肯定这很容易,但出于某种原因,它对我来说并不明显!!)

1 个答案:

答案 0 :(得分:15)

您可以使用:

:let @a=''             " clear register a. A faster alternative would be “qaq” in normal mode (thanks ZyX)
:g/pattern/y A         " yank all lines with pattern into register a, but in append mode (hence a capital letter)
:buffer other_file.txt
"ap

关于寄存器的this answer可能对你有所帮助。

如果您想要APPEND到其他缓冲区,则可以选择

:redir >> other_file.txt
:g/pattern/#       "alternative: :g/pattern/print or :g/pattern/number.
:redir END

参考文献::help :g:help :#:help :redir