Быстрое "Найти в файлах" для VIM?
Каковы некоторые опции для быстрого поиска "Найти в файлах" в VIM?
Наша кодовая база достаточно велика, что поиск должен работать с индексом. grep/vimgrep/etc работают слишком медленно.
Индексация не должна быть особенно быстрой; Я могу индексировать за одну ночь.
Спасибо,
[EDIT] Я также работаю в среде Windows.
Ответы
Ответ 1
Если это исходный код (а не полный текстовый поиск), то ctags с плагином TagList должны хорошо работать для ваших нужд. См. Например:
http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/
EDIT: TagList и ctags будут работать и на Windows (что я использую). См. Страницу установки TagList и часто задаваемые вопросы. Следующие ссылки могут оказаться полезными:
Там также есть форум TagList, где вы можете получить дополнительную помощь:
http://tech.groups.yahoo.com/group/taglist/
Я установил его на машину Windows некоторое время назад, но я не помню, чтобы возникали проблемы.
Ответ 2
Что-то, что я использую, но не через vim, есть: http://betterthangrep.com/
Это инструмент на основе perl, и он должен использоваться в Windows.
Ответ 3
Если вы работаете с большой базой кода, возможно, пришло время искать более мощное решение, чем обычные инструменты. OpenGrok - очень быстрый поиск исходного кода и перекрестная ссылка. В дополнение к своей высокой производительности он интегрируется с Subversion, Mercurial и ClearCase, среди других средств контроля версий версий. Это звучит очень похоже на то, что вы могли бы использовать.
Если вы хотите поддерживать OpenGrok из Vim, вы можете легко написать функцию vim, которая вызовет system()
, чтобы начать поиск для вас. Чтобы узнать больше о написании новых команд vim, найдите :help 40.2
в vim.
Я надеюсь, что вы искали.
Ответ 4
Я не знаю, как я нашел это, но похоже, что кто-то написал плагин для рабочего стола Google
Ответ 5
Попробуйте установить https://github.com/mileszs/ack.vim, http://beyondgrep.com/,
затем сделайте ссылку
ln -s /usr/bin/ack-grep /usr/bin/ack
и добавьте
noremap <C-f> :copen<CR>:Ack -aQi --ignore-dir someignoringdir
на ваш .vimrc, после того как вы сможете найти в файлах с помощью Ctrl + F, наслаждайтесь
_ /|
\'o.O'
=(___)=
U
Ответ 6
Вы можете попробовать это
: vimgrep/something/*/
и не забудьте открыть окно результатов поиска после
: Х