GVIM:全局命令的自动滚动
GVIM: auto scroll of a global command
让我从场景开始:我在 windows-
上使用 GVIM
- 我确实有一个很大的文件,据说有 3 GB 大小。
- 使用全局命令搜索文件中出现次数较多的内容。
- 我已将此全局命令的输出重定向到一个新文件。
问题:我需要滚动输出按空格键或其他键才能将此输出到新文件。
有什么方法可以跳过滚动而不丢失结果?
使用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
.
让我从场景开始:我在 windows-
上使用 GVIM- 我确实有一个很大的文件,据说有 3 GB 大小。
- 使用全局命令搜索文件中出现次数较多的内容。
- 我已将此全局命令的输出重定向到一个新文件。
问题:我需要滚动输出按空格键或其他键才能将此输出到新文件。
有什么方法可以跳过滚动而不丢失结果?
使用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
.