Я понимаю, что это может быть слишком поздно, но я надеюсь, что это будет кому-то полезно.
У нас относительно большой проект по работе около тысячи файлов кода C / C ++, php и shell
скрипты, конфиги и прочее.
Для навигации по файлам я использую следующие опции.
Сначала , я использую простую оболочку grep, хранящуюся в моем .vimrc
, чтобы найти конкретную строку в файлах:
function MyGrep( pattern, path, case, whole )
execute "normal! GoSearch text " . a:pattern . " in " . a:path . " and subdirs, case: " .a:case. " whole: ".a:whole
"E - extended regexp, l - display filenames only, r - search recursively
let l:keys = "Elr"
if a:case == 0
"case-sensitive
let l:keys = l:keys . "i"
endif
if a:whole != 0
"whole words only
let l:keys = l:keys . "w"
endif
let l:cmd = "r!grep -" . keys . " -e \"" . a:pattern ."\" "
let l:cmd2 = a:path . " --exclude=*.ncb --exclude=*.o --exclude=*.d --exclude-dir=.svn --exclude-dir=.d --exclude-dir=rc.d --binary-files=without-match"
echo l:cmd . l:cmd2
execute l:cmd . l:cmd2
endfunction
com -nargs=1 GrepHere call MyGrep( <q-args>, "./", 0, 0)
com -nargs=1 GrepHereCaseWhole call MyGrep( <q-args>, "./", 1, 1)
com -nargs=1 GrepHereCase call MyGrep( <q-args>, "./", 1, 0)
com -nargs=1 GrepHereWhole call MyGrep( <q-args>, "./", 0, 1)
В Windows я использую vimgrep и список изменений с этой командой (также в .vimrc
):
command -nargs=1 VGCodeHere :vimgrep /<args>/j ./**/*.{c,cpp,h,rc} | copen
Оба «greppers» зависят от текущего рабочего каталога, поэтому не забудьте установить его правильно.
Я обычно открываю новую безымянную вкладку в Vim и использую там эти команды поиска, чтобы сбросить туда файл
имена, которые меня интересуют, результаты поиска, журналы местоположений и другая информация.
Второй , утилита cscope и плагин для Vim - это очень удобный способ просмотра файлов,
функции, символы в проекте, но если вы имеете дело с исходниками C / C ++.
Третий , нативные трюки Vim, такие как
:e ./**/filename.cpp
, чтобы открыть filename.cpp где-нибудь в поддереве файловой системы. Поддерживает завершение имени файла.
:tabe %<.h
чтобы открыть соответствующий файл заголовка (вы можете изменить расширение .h на любое другое)
:Ex
для навигации, используя встроенный браузер файловой системы
- Ctrl-O, Ctrl-I для перемещения вперед и назад в списке переходов Vim
И чтобы в следующий раз вернуться из того же состояния Vim, я использую сессий .
Сохранить сессию в Vim с
:mksession sessionname.vis
и запустите vim с сеансом:
vim -S sessionname.vis