【问题标题】:How do I open the quickfix window instead of displaying grep results?如何打开快速修复窗口而不是显示 grep 结果?
【发布时间】:2014-05-15 00:49:12
【问题描述】:

我正在搜索一个大型代码库,发现 vimgrep 非常慢,因此我在 vim 中使用 :grep,它显示文件列表,然后显示 Press ENTER or type command to continue

Enter 后,我可以输入:copen 以访问结果列表。但我想知道我是否可以自动化这个过程?将 -q 标志添加到 grep 似乎会导致 grep 什么都不做,然后 copen 为空白,除非我在这里做错了什么,否则这并不是真正可取的。

我正在使用 vim 7.4

【问题讨论】:

    标签: vim


    【解决方案1】:

    你可以定义这样的命令:

    command! -bar -nargs=1 Grep silent grep <q-args> | redraw! | cw
    

    这将允许您将其称为 Grep pattern:cw,仅当它不为空时才会打开快速修复列表。

    【讨论】:

    • 当我运行Grep "pattern" 时,我只得到E471: Argument required
    • 你不需要引号,如果必须,那么使用单引号'
    • 我喜欢这样跳过“Press ENTER”消息的方式。由于某种原因,它不喜欢这里的|s(我得到了E488: Trailing characters: cw /dev/null),所以我不得不对其进行调整:command! -bar -nargs=1 Grep silent execute "grep &lt;args&gt;" | redraw! | cw 原因可能是我的grepprg=grep -n $* /dev/null
    【解决方案2】:

    使用自动命令。这是:Ggrepsuggested by Tim Pope。它也适用于您的情况:

    autocmd QuickFixCmdPost *grep* cwindow
    

    欲了解更多信息,请参阅:

    :h :au
    :h QuickFixCmdPost
    :h :cwindow
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多