function! AutoLoadCTagsAndCScope()
let max = 10
let dir = './'
let i = 0
let break = 0
while isdirectory(dir) && i < max
if filereadable(dir . 'GTAGS')
execute 'cs add ' . dir . 'GTAGS ' . glob("`pwd`")
let break = 1
endif
if filereadable(dir . 'cscope.out')
execute 'cs add ' . dir . 'cscope.out'
let break = 1
endif
if filereadable(dir . 'tags')
execute 'set tags =' . dir . 'tags'
let break = 1
endif
if break == 1
execute 'lcd ' . dir
break
endif
let dir = dir . '../'
let i = i + 1
endwhile
endf
nmap <F7> :call AutoLoadCTagsAndCScope()<CR>
" call AutoLoadCTagsAndCScope()
" http://vifix.cn/blog/vim-auto-load-ctags-and-cscope.html
你在 ctags 指令執行時指明產生的檔案路徑應該就好了吧。
我是這樣子設定
tags
選項的:這樣在專案裡不太深的話總是能找到這個專案的 tags 檔案。
PS: taglist 和 tagbar 插件很好用的哦=w=
除了設定
" set tags+=./../tags,./../../tags,./../../../tags
外,可以嘗試下面的方法(例如內核的tags實在太大,最好不要自動載入,所以不推薦在項目特別大時這麼做)vim 自動上級目錄查找遞歸載入ctags和cscope
原文在此,我增加了目錄層數,以及加入了GTAGS(參考GNU golbal)