GVIM:自动滚动全局命令

时间:2016-01-14 19:07:52

标签: vim vim-plugin

让我先从场景开始:我在Windows上使用GVIM -

  1. 我确实有一个巨大的文件说3 GB大小。
  2. 使用全局命令搜索一些文件。
  3. 我已将此全局命令输出重定向到新文件。
  4. 问题:我需要滚动输出按空格键或其他键以将此输出转换为新文件。

    无论如何我可以跳过滚动而不会失去结果吗?

3 个答案:

答案 0 :(得分:3)

使用Vim的:grep命令(:vimgrep也可以)来搜索与当前缓冲区关联的文件中的foo

:grep foo %

然后,在quickfix窗口中显示所有匹配项:

:cwindow

一气呵成:

:gr foo %|cw

参考:

:help :grep
:help :vimgrep
:help quickfix
:help :cwindow

答案 1 :(得分:0)

这对我很有用::!grep 'foo' path/to/file > newOutputFile.txt && vim newOutputFile.txt它可能不像上面的romainl的答案一样干净,但我对使用:cwindow并不是特别熟悉(现在会调查它),所以我发现创建了一个新文件和vim打开对我来说更方便一点。

另外,根据你在做什么,我是ag的粉丝,因为他喜欢做类似grep的事情。

答案 2 :(得分:0)

正如其他人所说,使用像grep这样的工具,在Vim之外更容易进行过滤,但如果你必须......

  • 如果您使用:redir,则可以使用:silent global/...来抑制GVIM中的输出。它仍将由:redir捕获。
  • 如果您基本上使用:g/<pattern>/p来过滤匹配的行,则可以使用:vglobal/<pattern>/d 删除不匹配的行,然后通过:w another-filename保留剩余的内容
相关问题