在 Vim 中使用 :lgrep 命令并隐藏结果

在 Vim 中使用 :lgrep 命令并隐藏结果

我喜欢使用:lgrepVim 中的命令来为当前缓冲区创建位置列表。例如,我可以通过以下方式将其与 Perl 正则表达式一起使用:

:lgrep -P 'pattern' %

但是,我不喜欢 grep 完成后显示结果,从而遮挡我的 Vim 会话。我希望将结果放入位置列表窗口,但不要显示 grep 的输出(到屏幕)。通常,grep 完成后,Vim 会隐藏所有窗口并在我的终端中显示 grep 的结果。然后我必须Press ENTER or type command to continue返回 Vim 会话。

这很烦人。

我通常会立即打开一个位置列表窗口并使用该窗口浏览结果。我想抑制 grep 结果的显示,然后提示我按 ENTER 继续。

这可能吗?

答案1

是的,只需:silent在命令前面加上:

:silent lgrep -P 'pattern' %

摘录自:help :silent

  ":silent" will also avoid the hit-enter prompt.  When
  using this for an external command, this may cause the
  screen to be messed up.  Use |CTRL-L| to clean it up
  then.

答案2

您可以使用:lvim而不是:lgrep

因为它使用内部例程,所以它不会暂停 Vim,也不会强迫您点击<CR>或执行:redraw任何操作:

:lvim pattern % | lw

而对于真正低技术含量的方法:

:il[ist] pattern
:n <------------------- your chosen line number

相关内容