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
Вариант все работает как задумано.
Спасибо за помощь, хотя!