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

Ack.vim with ag not using current directory?

我现在正在尝试弄清楚 vim 并制作我自己的 .vimrc.

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

当我第一次安装 Ack 并通过以下方式测试 "native" Ack 时:

:Ack teststring

一切正常,我在 quickfix-window.

中得到了结果

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

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

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

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

:Ack teststring mysubdirectory/

搜索有效。

这让我很困惑。如果指定 none ,它不应该默认到当前目录吗?至少这就是我对 documentation 的理解,这似乎也适用于 "native"。但是一旦我将 ag-part 添加到我的 .vimrc 中,它就不再存在了。

任何人都可以提示我这里缺少什么吗?

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

好的,我找到问题了。

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

据我所知,SilverSearcher 处理得不是很好,请参阅 here

当我使用带有 -U 选项的命令时,一切正常。

谢谢你的帮助!