【发布时间】:2016-11-17 07:46:11
【问题描述】:
我目前正在尝试找出 vim 并制作我自己的 .vimrc。
在对搜索命令和插件进行一些研究后,我决定听从某人的建议,并尝试使用Ack.vim 和SilverSearcher/Ag 进行实际搜索。虽然我遇到了一些问题,但让我从头开始:
当我第一次安装 Ack 并通过以下方式测试“本机”Ack 时:
:Ack teststring
一切正常,我在快速修复窗口中得到了结果。
然后我继续安装 SilverSearcher 并将以下内容添加到我的 vimrc 中:
if executable('ag')
let g:ackprg = 'ag --vimgrep'
endif
...现在当我执行与上面相同的命令时,搜索不再起作用。相反,我立即得到一个空的快速修复窗口,没有其他任何事情发生。
但是,如果我在命令中添加目录,例如
:Ack teststring mysubdirectory/
搜索有效。
这让我很困惑。如果没有指定,它不应该默认为当前目录吗?至少这就是我对documentation 的理解,它似乎也适用于“本地人”。但是一旦我将 ag 部分添加到我的 .vimrc 中,它就不再存在了。
谁能给我提示一下我在这里缺少什么?
PS:如果这很重要:我在 OSX ElCapitan 上使用 iterm2 中的 VIM8 终端版本。
【问题讨论】:
-
嗯,对不起,我忘了在 Reddit 上回复:P 无论如何......是的,我不明白。
:Ack teststring和:Ack teststring .对我的工作方式相同(g:ackprg设置为与您的相同)。你能从命令行试试看ag --vimgrep teststring和ag --vimgrep teststring .是否做同样的事情? -
你在那个帖子里得到了非常中肯的建议。你到底为什么选择插件方式?
-
@romainl 是的,我阅读了每条评论,昨天我在玩 grep 和 vimgrep。但 Ran4 的评论也是有道理的,如果您必须自己配置所有内容,您可能会犯错误,尤其是作为初学者(例如,请参阅此线程:D)。所以我现在正在尝试这个。 @Amadan 您的两个命令在命令行上似乎都没有为我做任何事情。但如果我用'.'代替。使用“*”并键入
ag --vimgrep teststring *会运行搜索。我认为我的配置有问题? ...这很奇怪,因为它基本上是全新安装:/