我喜欢使用:lgrep
Vim 中的命令来为当前缓冲区创建位置列表。例如,我可以通过以下方式将其与 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