Функциональность Vim 'go to file' - PullRequest
3 голосов
/ 19 декабря 2011

Я ищу хорошее решение проблемы с попыткой открыть любой файл в моем исходном дереве, используя завершение табуляции / сопоставление с подстановочными знаками / случай верблюда и т. Д. Сложность, с которой я сталкиваюсь, - это найти способ сделать это, который работаетна базе кода ~ 30 000 файлов и ~ 7000 каталогов (включая скрытые каталоги .svn).Другие программы (такие как Resharper или Sublime Text Editor) могут почти мгновенно перейти к любому файлу на этой базе кода.

До сих пор я пробовал такие вещи, как добавление рекурсивной двойной звезды '**' к моемуПуть Vim и плагин FuzzyFinder, но ни тот, ни другой не способны обрабатывать большое количество файлов и каталогов.С этими методами Vim либо совсем не откликнется, либо, по крайней мере, сильно замедлится.

Ответы [ 3 ]

6 голосов
/ 19 декабря 2011

Давным-давно в старом проекте с огромным деревом каталогов и тысячами файлов назад я делал это так (в пустом буфере):

:read !tree -af /PATH/TO/PROJECT

Эт вуаля, теперь у меня есть буфер с деревом каталогов. Теперь я могу искать в этом буфере "стандартные" регулярные выражения Vim. Если я нашел файл, я просто нажал g f , чтобы перейти к нему.

Если у вас не установлена ​​tree, вы все равно можете перейти с:

:read !find /PATH/TO/PROJECT -type f -print 2>/dev/null

НТН

1 голос
/ 20 декабря 2011

Попробуйте Command-T .Он поддерживает случай верблюда и очень умно угадывает, какой файл вы пытаетесь найти.Я считаю, что он также очень стабилен.

0 голосов
/ 20 декабря 2011

Хотя я не пробовал, я слышал, что GNU GLOBAL очень быстро. Вы можете использовать его с gtags.vim .

Также предоставляется справка о том, как использовать ее в vim.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...