Ack.vim与ag没有使用当前目录?

时间:2016-11-17 07:46:11

标签: vim ack ag

我正在试图找出vim并制作我自己的.vimrc。

在对搜索命令和插件进行一些研究后,我决定遵循某人的建议,并尝试使用Ack.vim SilverSearcher/Ag进行实际搜索。我遇到了一些问题,但让我从头开始:

当我第一次安装Ack并通过以下方式测试“本机”Ack时:

:Ack teststring

一切正常,我在quickfix-window中得到了结果。

然后我继续安装SilverSearcher并将以下内容添加到我的vimrc:

if executable('ag')
  let g:ackprg = 'ag --vimgrep'
endif

...现在当我执行与上面相同的命令时,搜索不再起作用了。相反,我立即得到一个空的quickfix窗口,没有其他事情发生。

但是,如果我在命令中添加一个目录,例如

:Ack teststring mysubdirectory/

搜索工作。

这让我很困惑。如果没有指定,它不应该默认为当前目录吗?至少这就是我理解documentation的方式,以及它对“本地”的影响。但是一旦我将ag-part添加到我的.vimrc中,它就不再存在了。

有人能给我一些暗示我在这里缺少的东西吗?

PS:如果这很重要:我在OSX ElCapitan上使用iterm2中的终端版VIM8。

1 个答案:

答案 0 :(得分:4)

好的,我发现了问题。

显然我们的项目中有一个.gitignore,我的同事首先排除了所有文件,然后使用"!"来包含特定文件。

正如我现在所知,SilverSearcher并没有很好地处理这个问题,请参阅here

当我使用带有-U选项的命令时,一切都按预期工作。

感谢您的帮助!