Быстро "Найти в файлах" для VIM?
Какие есть варианты для действительно быстрого поиска "Поиск в файлах" в VIM?
Наша кодовая база достаточно велика, чтобы при поиске нужно было работать с индексом. grep/vimgrep/etc слишком медленный.
Индексирование не должно быть особенно быстрым; Я могу индексировать в одночасье.
Спасибо,
[EDIT] Я также работаю в среде Windows.
6 ответов
Если это исходный код (а не полнотекстовый поиск), тогда ctags с плагином TagList должны хорошо работать для ваших нужд. Смотрите, например:
http://www.thegeekstuff.com/2009/04/ctags-taglist-vi-vim-editor-as-sourece-code-browser/
РЕДАКТИРОВАТЬ: TagList и ctags будут работать на Windows (это то, что я использую). Смотрите страницу установки TagList и FAQ. Следующие ссылки могут оказаться полезными:
- http://www.vim.org/scripts/script.php?script_id=273
- http://vim-taglist.sourceforge.net/installation.html
- http://vim-taglist.sourceforge.net/faq.html
Существует также форум TagList, где вы можете получить дополнительную помощь:
http://tech.groups.yahoo.com/group/taglist/
Некоторое время назад я установил его на своей машине с Windows, но не помню, чтобы у меня возникали какие-либо проблемы.
То, что я использую, но не через vim, это ack: http://betterthangrep.com/
Это инструмент на основе Perl, и его следует использовать в Windows.
Если вы работаете с большой кодовой базой, возможно, пришло время искать более мощное решение, чем обычные инструменты. OpenGrok - это очень быстрый механизм поиска исходного кода и перекрестных ссылок. Помимо своей высокой производительности, он интегрируется с Subversion, Mercurial и ClearCase, среди других программ контроля версий исходного кода. Это звучит очень похоже на то, что вы могли бы использовать.
Если вы хотите, чтобы поддержка использовала OpenGrok из Vim, вы можете легко написать функцию vim, которая будет вызывать system()
начать поиск для вас. Чтобы узнать больше о написании новых команд vim, посмотрите вверх :help 40.2
в пределах Vim.
Я надеюсь, что это то, что вы искали.
Я не знаю, как я нашел это, но похоже, что кто-то написал плагин для Google Desktop
Попробуйте установить 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
Вы можете попробовать это
:vimgrep / что-то / */
и не забудьте открыть окно результатов поиска после
: ХО