如何将所有匹配的行放入一个缓冲区?
你如何将所有的匹配行放入缓冲区?
给定一个文件,如:
match 1 skip skip match 2 match 3 skip
我希望能够发出一个命令,将与模式匹配的所有行(比如/ ^ match /这个例子)放到一个单独的缓冲区中,这样我就可以把它放到另一个文档中,或者写入一个摘要或者其他的文档中。
这个命令应该放在缓冲区里:
match 1 match 2 match 3
我的第一个想法是尝试:
:g/^match/y
但我只是得到最后一场比赛。 这是有道理的,因为:g命令有效地重复每个匹配行的y
。
也许有一种方法来追加缓冲,而不是覆盖它。 我无法find它。
:help registers :help quote_alpha
指定一个大写字母作为注册名称以便附加到它,例如:yank A
:g/^match/yank A
哦,我刚才意识到上面的评论后,很容易就可以将匹配的行抽出到一个临时缓冲区中。
:r !grep "pattern" file.txt
一旦你放弃find他们,最简单的解决scheme就来了。 🙂