例如,當我對文件進行更改時,添加一個函數,在保存更改後,如何使標記列表自動更新其窗口中的「標記列表」?如何刷新vim中的taglist?
9
A
回答
15
我改編了我的設置C++ code completion vim tip。
map <C-F12> :!ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .<CR>
當需要時,我按下Ctrl-F12重新生成標籤。
如果您使用vim-taglist,你可以添加到您的.vimrc
一個autocommand爲BufWritePost事件來更新標記列表窗口每次保存後:
autocmd BufWritePost *.cpp :TlistUpdate
2
沒有測試過,但你可以嘗試像:
au BufWritePre *.cpp ks|!ctags %
當在.cpp
結尾的文件緩衝區被保存(:w
)這基本上執行CTAGS。
1
我寫了一個little experimental script,它自動遞增地更新文件保存時的「當前」標籤文件。
(現在的問題是Vim auto-generate ctags實際上是多餘的)
1
http://vim.wikia.com/wiki/Autocmd_to_update_ctags_file
只需添加到您的〜/ .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()
相關問題
- 1. Vim Taglist導航
- 2. 替代vim中的taglist
- 3. 如何在Emacs中使用Vim-like-Taglist?
- 4. 在Vim的taglist中支持Cython?
- 5. 如何在vim的Taglist窗口中顯示變量
- 6. 如何在窗口的右側打開Vim的Taglist插件?
- 7. Vim Taglist黃色突出標籤
- 8. VIM:我如何使用vim刷新目錄?
- 9. 如何刷新git的差異輸出Vim中
- 10. Vim Taglist:如何跳轉到標準c庫中的函數/變量?
- 11. 刷新Vim緩衝區
- 12. 在OSX中使用帶taglist和ctags的vim
- 13. 在Vim中更改Ctags Taglist上的位置
- 14. 在vim和python virtualenv中使用taglist的ctags
- 15. 如何跳轉到taglist中的方法
- 16. 如何在Vim中使用FuzzyFinder刷新文件列表?
- 17. 如何更改vim的taglist插件的預覽結果位置(點擊'p')
- 18. vim刷新保存的NWrite密碼?
- 19. 有沒有人有與Scala一起工作的vim taglist插件?
- 20. 如何在JTextPane中無刷新刷新(刷新)文本
- 21. vim:如何在一個垂直分割屏幕上設置taglist和nerdtree
- 22. 如何刷新可用文件CommandT在vim
- 23. Vim:隨時讓Chrome刷新I:寫入
- 24. 如何刷新
- 25. Vim taglist插件顯示C++標籤兩次
- 26. GNU Global/gtags是否支持taglist vim插件?
- 27. 爲什麼ideavim與vim for taglist不一樣?
- 28. 如何刷新jQuery中
- 29. Drag'n'drop taglist elements
- 30. awesome wm taglist size