Ответ 1
Сначала вам нужно обновить базу данных cscope.
:!cscope -Rbq
Затем заново создайте базу данных из vim.
:cs reset
Я использую cscope с vim. При выполнении больших изменений для нескольких файлов cscope сообщит о старых номерах строк для измененных файлов. Как я могу восстановить cscope db из vim без потери
Спасибо
Сначала вам нужно обновить базу данных cscope.
:!cscope -Rbq
Затем заново создайте базу данных из vim.
:cs reset
Основываясь на предыдущем ответе, добавьте это в свой .vimrc:
map <F5> :!cscope -b<CR>:cs reset<CR><CR>
Затем используйте F5 внутри vim для обновления.
Я использую script, который продолжает строить мои индексы в фоновом режиме:
" We need to setup the function that reset cscope.
"You could define this in your vimrc instead.
vim --servername GVIM --remote-send ":function! ResetCscope()<CR>cscope reset<CR>endfunction<CR>"
while true ; do
echo building...
ctags -R
cscope -Rbk
vim --servername VIM --remote-expr "ResetCscope()"
echo done. sleeping.
sleep 1m
done
(На самом деле много больше сложный, чем тот.)
Вызов vim должен перезагрузить базу данных cscope в vim, если вы запустили ее с помощью vim --servername VIM
. (Я использую фоновая команда для запуска запросов cscope, поэтому я не уверен в этом. Команда запускает cscope самостоятельно и не использует Vim подключение.)
cscope_dynamic делает все, что вы просите, и даже больше:
Он использует две базы данных:
Изменить: Feb17: Удаленный старый ответ, поскольку cscope_dynamic делает все это из коробки.
Основываясь на предыдущих ответах, это то, что вы делаете, когда ваш текущий каталог не совпадает с вашим файлом cscope.out:
map <F5> :!cd /your/cscope.out/dir/ && cscope -bk<CR>:cs reset<CR><CR>