vim自動更新ctags與taglist

vim的ctagstaglist在默認情況下是不進行自動更新的,這對於編寫代碼是非常不方便的,好在vim的腳本還是很強大的,於是在vimrc中添加如下函數:

function! UpdateCtags()
    let curdir=getcwd()
    while !filereadable("./tags")
        cd ..
        if getcwd() == "/"
            break
        endif
    endwhile
    if filewritable("./tags")
        !ctags -R --file-scope=yes --langmap=c:+.h --languages=c,c++ --links=yes --c-kinds=+p --c++-kinds=+p --fields=+iaS --extra=+q
        TlistUpdate
    endif
    execute ":cd " . curdir
endfunction

接下來,可以使用鍵盤映射的方式調用這個更新函數:

nmap <F10> :call UpdateCtags()<CR>

 
也可以在vim保存文件時自動更新:
autocmd BufWritePost *.c,*.h,*.cpp call UpdateCtags()

這兩種方式用哪種都OK,自動保存可能會發生一些性能上的不爽,鍵盤映射按多了也煩。

原文地址:http://www.linuxbar.cn/vim%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0ctags%E4%B8%8Etaglist/
發佈了69 篇原創文章 · 獲贊 40 · 訪問量 107萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章