Я новичок в VIMscript. Во время кодирования мне нужно обновить базу данных тэгов и cscope, чтобы я мог переходить и искать только что добавленный код (функции, макросы и т. Д.)
Мой .vimrc
файл имеет следующий код:
function UpdateTags()
silent! execute (":!rm -rf tags cscope.files cscope.out")
silent! execute (":!ctags -R . *.c *.h *.hpp *.cpp --tag-relative=yes ./ 2>/dev/null")
silent! execute (":!cscope -b -R") | redraw!
normal == :cs reset<CR><CR>
normal == :TlistUpdate<CR>
endfunction
nnoremap <silent> <C-k> :call UpdateTags()<CR>
Я вижу, что теги и файл cscope.out обновлены. Однако я не могу решить эти несколько вещей:
- Экран мерцает дважды (я перерисовал только один раз в функции)
- Тег-лист не обновляется. Если я снова выполню команду
:TlistUpdate
вручную, то у меня появятся новые теги.
Работает следующий код:
function UpdateTags()
call system ("rm -rf tags cscope.files cscope.out")
call system ("ctags -R . *.c *.h *.hpp *.cpp --tag-relative=yes ./ 2>/dev/null")
call system ("cscope -b -R")
silent cscope reset
TlistUpdate
endfunction