【发布时间】:2014-06-05 12:08:59
【问题描述】:
我是 Vim 新手,正在尝试找出项目范围内的搜索。在Practical Vim 和Thoughbot post 之后,我尝试使用 ack 代替 grep,然后通过将其放入我的 vimrc 中使用 Silver Searcher 代替 ack
尝试使用 ack 时(遵循 Practical Vim):
set grepprg=ack\ --nogroup\ $* "Use ack instead of grep
set grepformat=%f:%l:%c:%m
尝试使用 Silver Searcher 时(跟随 Thoughtbot):
set grepprg=ag\ --nogroup\ --nocolor
set grepformat=%f:%l:%c:%m
在这两种情况下,当我搜索某些内容时,比如:grep RSpec,结果列表都会出现。我输入:copen 打开快速修复列表。但是,vim 不会打开第一个匹配项,当我在 Quickfix List 中的匹配项上按 enter 时,它什么也不做。 :cnext、:cprev 等也什么都不做。 Quickfix 列表在每个匹配项之前还有||。
当我尝试:vimgrep RSpec **/*.rb 时,结果会显示出来,我输入:copen,第一个匹配项显示在缓冲区中,当我在任何其他匹配项上按 Enter 时,它们会按预期在缓冲区中打开。
任何帮助弄清楚如何纠正这个问题将不胜感激。
【问题讨论】:
-
您描述中的
||部分让我认为grepformat选项可能不正确。可以加个截图吗? -
感谢 romainl。肯特的回答提到了同样的事情。删除该行解决了问题。
-
请您指定您传递给 grepprg 参数的不同标志应该用于什么?具体来说,$* 是做什么用的?