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

问题描述:

我正在编辑Vim中的Python文件,我有几行提取:所有行匹配模式REGEXVim:打开一个新的缓冲区,其中包含当前匹配模式的文件的所有行

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

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

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

+2

我不知道比这更快的方式:http://vim.wikia.com/wiki/VimTip1063 – 2013-03-03 23:12:42

尝试这一个:

$ vim file.txt 

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

最后的命令调用外部grepREGEX和替代缓冲液名称#(如file.txt相同),然后读取结果至当前缓冲区(new.txt


也试试这个:

$ vim file.txt 

:v/REGEX/d 
:w new.txt 
+0

Upvoting,因为我不知道':v'可以像':g!'一样使用。 – Robottinosino 2013-03-05 22:47:52

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

vim `grep REGEX file.txt` 

会做的伎俩。