GVIM:全局命令的自动滚动

GVIM: auto scroll of a global command

让我从场景开始:我在 windows-

上使用 GVIM
  1. 我确实有一个很大的文件,据说有 3 GB 大小。
  2. 使用全局命令搜索文件中出现次数较多的内容。
  3. 我已将此全局命令的输出重定向到一个新文件。

问题:我需要滚动输出按空格键或其他键才能将此输出到新文件。

有什么方法可以跳过滚动而不丢失结果?

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

:grep foo %

然后,显示 quickfix 中的所有匹配项 window:

:cwindow

一口气:

:gr foo %|cw

参考:

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

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

另外,根据你在做什么,我是 ag 的粉丝,因为我做了 grep-like 事情。

正如其他人所说,在 Vim 之外使用 grep 等工具更容易完成过滤,但如果您必须...

  • 如果你使用:redir,你可以使用:silent global/...来抑制GVIM中的输出。它仍然会被 :redir.
  • 捕获
  • 如果你基本上使用:g/<pattern>/p来过滤匹配行,你也可以使用:vglobal/<pattern>/d删除 non-matching行,然后坚持什么仍然通过 :w another-filename.