Vim:打开一个新缓冲区,其中包含与模式匹配的当前文件的所有行

时间:2013-03-03 22:48:45

标签: vim

我正在Vim中编辑一个Python文件,我有几行要提取:所有符合模式REGEX的行。

我可以按:g/REGEX列出所有这些行。

如何使用上面命令返回的选择内容打开一个新缓冲区?

现在,我正在退出编辑器并使用catgrep来实际创建新文件......必须有一个集成的方式吗?

2 个答案:

答案 0 :(得分:3)

试试这个:

$ vim file.txt

:e new.txt
:0r!grep REGEX #

最后一个命令调用带有grep的外部REGEX和备用缓冲区名称#(与file.txt相同),然后将结果读取到当前缓冲区({{1} })


也试试这个:

new.txt

答案 1 :(得分:0)

如果你使用命令行Vim而不是gVim很酷,我相信:

vim `grep REGEX file.txt` 

会做的伎俩。