Подтвердить что ты не робот

Быстрое "Найти в файлах" для VIM?

Каковы некоторые опции для быстрого поиска "Найти в файлах" в VIM?

Наша кодовая база достаточно велика, что поиск должен работать с индексом. grep/vimgrep/etc работают слишком медленно.

Индексация не должна быть особенно быстрой; Я могу индексировать за одну ночь.

Спасибо,

[EDIT] Я также работаю в среде Windows.

4b9b3361

Ответ 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.

Я надеюсь, что вы искали.

Ответ 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/*/

и не забудьте открыть окно результатов поиска после

: Х