Ack.vim с ag не использует текущий каталог?

Сейчас я пытаюсь понять vim и создать свой собственный.vimrc.

После некоторого исследования команд поиска и плагинов я решил последовать совету кого-то и попробовать Ack.vim с SilverSearcher / Ag для реальных поисков. Я столкнулся с некоторыми проблемами, но позвольте мне начать с самого начала:

Когда я впервые установил Ack и протестировал "родной" Ack через:

:Ack teststring

все работало нормально, и я получил результаты в окне быстрого исправления.

Затем я приступил к установке SilverSearcher и добавил в свой vimrc следующее:

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

... и теперь, когда я делаю ту же команду, что и выше, поиск больше не работает. Вместо этого я немедленно получаю пустое окно быстрого исправления, и больше ничего не происходит.

Однако, если я добавлю каталог к ​​команде, например,

:Ack teststring mysubdirectory/

поиск работает.

Это смутило меня. Не должно ли это быть по умолчанию в текущем каталоге, если он не указан? По крайней мере, так я понимаю документацию, и это, похоже, работает и для "нативных". Но как только я добавляю ag-часть в мой.vimrc, его больше нет.

Кто-нибудь может дать мне подсказку о том, что мне здесь не хватает?

PS: В случае, если это важно: я использую ElXapitan на OSX, используя версию терминала VIM8 в iterm2.

1 ответ

Решение

Хорошо, я нашел проблему.

Очевидно, в нашем проекте есть.gitignore, где мои коллеги сначала исключили ВСЕ файлы, а затем включили конкретные файлы, используя "!".

Как я теперь понял, SilverSearcher не очень хорошо справляется с этим, смотрите здесь.

Когда я использую команду с -U Вариант все работает как задумано.

Спасибо за помощь, хотя!

Другие вопросы по тегам