用vim链接vimgrep和copen

时间:2017-05-13 13:16:46

标签: vim

当我必须在某些目录中递归搜索模式时,我就会这样做:

:vimgrep 'some-pattern' app/views/**

然后,我必须输入:

:copen 20

所以我终于可以看到包含" some-pattern"的文件列表。在quikfix窗口中有20行。

它完全符合我的需要,但有没有办法将这两个命令联系起来,所以每当我要求一个vimgrep时,它就会管#4;管道"如果我输入":copen 20"?

,那么quickfix窗口的结果就有了

尽可能地,我更喜欢坚持标准的东西(任何基于.vimrc的方法?),并避免使用插件来查找文件。

我在一周前切换到Vim,谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您可以将此代码段添加到vimrc

augroup qf
    autocmd!
    autocmd QuickFixCmdPost [^l]* cwindow
    autocmd QuickFixCmdPost l*    cwindow
    autocmd VimEnter        *     cwindow
augroup END

每当您执行:vimgrep或填充quickfix /位置列表的其他命令时,这将自动打开quickfix窗口。

示例:

:vim foo **/*.js
:lgrep bar *.rb
$ vim -q <(grep baz test.txt)

请参阅:help autocmd:help :cwindow

答案 1 :(得分:0)

哈哈!管道,是的...我只是随机尝试:

:vimgrep 'some-pattern' app/views/** | copen 20

它有效!无论如何,如果有人有提示在每个vimgrep之后自动附加它,我的问题仍然是开放的...(你也可以证明这是一个坏主意,这是可能的。)