Vim:打开一个新的缓冲区,其中包含当前匹配模式的文件的所有行
问题描述:
我正在编辑Vim中的Python文件,我有几行提取:所有行匹配模式REGEX
。Vim:打开一个新的缓冲区,其中包含当前匹配模式的文件的所有行
我可以列出所有这些行:g/REGEX
。
如何用上面的命令返回的选择内容打开一个新的缓冲区?
现在,我正在诉诸退出编辑器,并使用cat
和grep
实际创建一个新文件...必须有一个集成的方式?
答
尝试这一个:
$ vim file.txt
:e new.txt
:0r!grep REGEX #
最后的命令调用外部grep
与REGEX
和替代缓冲液名称#
(如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`
会做的伎俩。
我不知道比这更快的方式:http://vim.wikia.com/wiki/VimTip1063 – 2013-03-03 23:12:42