Po wprowadzeniu zmiany w pliku, na przykład, dodaj funkcję, w jaki sposób mogę uczynić taglistę automatyczną aktualizacją "listy znaczników" w jej oknach po zapisaniu zmiany?Jak odświeżyć taglistę w vimie?
9
A
Odpowiedz
15
Dostosowałem ustawienia z poziomu C++ code completion vim tip.
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
W razie potrzeby naciskam Ctrl-F12, aby zregenerować tagi.
Jeśli używasz vim-taglist, można dodać do .vimrc
o autocommand dla zdarzenia BufWritePost zaktualizować okno taglist po każdym zapisać:
autocmd BufWritePost *.cpp :TlistUpdate
2
nie testowałem, ale można spróbować czegoś podobnego :
au BufWritePre *.cpp ks|!ctags %
który zasadniczo wykonuje ctags gdy bufor dla pliku kończącego się w .cpp
zostaje zapisany (:w
).
1
Napisałem little experimental script, który automatycznie i przyrostowo aktualizuje "bieżący" plik znaczników podczas zapisywania pliku.
(Pytanie jest właściwie zbędny z Vim auto-generate ctags)
1
http://vim.wikia.com/wiki/Autocmd_to_update_ctags_file
Wystarczy dodać do Twojego ~/.vimrc
function! DelTagOfFile(file)
let fullpath = a:file
let cwd = getcwd()
let tagfilename = cwd . "/tags"
let f = substitute(fullpath, cwd . "/", "", "")
let f = escape(f, './')
let cmd = 'sed -i "/' . f . '/d" "' . tagfilename . '"'
let resp = system(cmd)
endfunction
function! UpdateTags()
let f = expand("%:p")
let cwd = getcwd()
let tagfilename = cwd . "/tags"
let cmd = 'ctags -a -f ' . tagfilename . ' --c++-kinds=+p --fields=+iaS --extra=+q ' . '"' . f . '"'
call DelTagOfFile(f)
let resp = system(cmd)
endfunction
autocmd BufWritePost *.cpp,*.h,*.c call UpdateTags()
Powiązane problemy
- 1. Jak usunąć słowo w vimie?
- 2. Jak odświeżyć datagrid w WPF
- 3. Jak odświeżyć obserwowalne w RxJava?
- 4. Jak odświeżyć singleton w C#
- 5. Jak odświeżyć GridView w ExtJ?
- 6. Jak odświeżyć piechart w C#
- 7. Autoindentowanie Haskella w Vimie
- 8. Jak programowo odświeżyć przeglądarkę?
- 9. Jak odświeżyć płótno
- 10. Jak "odświeżyć" zmienną?
- 11. Jak odświeżyć mapę Google.
- 12. Jak odświeżyć dokument Bokeh
- 13. najdłuższa linia w vimie?
- 14. Jak odświeżyć PictureBox
- 15. Jak odświeżyć DbContext
- 16. Jak szybko połączyć dwie linie w Vimie?
- 17. Jak zerwać cały blok w Vimie?
- 18. Jak usunąć wiele buforów w Vimie?
- 19. Jak sortować linie UTF-8 w Vimie?
- 20. Jak mogę wygenerować identyfikator GUID w Vimie?
- 21. Jak wyszukiwać pełne słowa w vimie?
- 22. Jak powtórzyć ostatnie n zmian w Vimie?
- 23. Jak zmienić rozmiar tabulatora w Vimie?
- 24. Rozszerzenie CamelCase w Vimie jak Intellij Idea?
- 25. Jak skutecznie zarządzać zakładkami/buforami w vimie?
- 26. Jak mogę zawinąć tekst w Vimie? speak
- 27. W Vimie jak przeskakiwać pomiędzy dwoma plikami
- 28. Jak usunąć podświetlanie wcięcia w vimie?
- 29. Jak rozpoznać biblioteki/frameworki javascript w Vimie?
- 30. Jak ponownie otworzyć bufor w vimie?