function! Gutentags_init()
let $GTAGSLABEL = 'native-pygments'
if exists('g:hjvim_config.path.plugdir')
let l:tempdir = g:hjvim_config.path.plugdir
else
let l:tempdir = $VIMFILES
endif
if hjenv#IsWindows()
" save the tags files into vimfiles
let s:vim_tags = expand(l:tempdir . '/cache/tags')
let l:winbin = hjinit#get('path','winbin')
let $PATH = l:winbin.'\gtags\bin;'.$PATH
let $GTAGSCONF = l:winbin . '\gtags\share\gtags\gtags.conf'
else
" save the tags files into ~/.cache/tags
let s:vim_tags = expand(l:tempdir . '/cache/tags')
let $GTAGSCONF = '/usr/local/share/gtags/gtags.conf'
endif
"gtags并不主动识别.h 中的C++类,除非设置GTAGSFORCECPP 环境变量。
"let $GTAGSFORCECPP=1,再生成tags即可。
let g:gutentags_cache_dir = s:vim_tags
if !isdirectory(s:vim_tags) " auto create tags folder
silent! call mkdir(s:vim_tags, 'p')
endif
set tags=./.tags;,.tags
let g:gutentags_project_root = ['.root', '.git', '.svn', 'hg']
" 设置那些文件不使用gutentags
let g:gutentags_exclude_filetypes = ['vim']
" open gtags debug mode
let g:gutentags_define_advanced_commands = 1
" use .tags as the name of the data files
let g:gutentags_ctags_tagfile = '.tags'
" check gtags and ctags, if support both , add them all
let g:gutentags_modules = []
if executable('ctags')
let g:gutentags_modules += ['ctags']
endif
if executable('gtags-cscope') && executable('gtags')
let g:gutentags_modules += ['gtags_cscope']
endif
" config ctags
let g:gutentags_ctags_extra_args = ['--fields=+niazS', '--extras=+q']
let g:gutentags_ctags_extra_args += ['--c++-kinds=+px']
let g:gutentags_ctags_extra_args += ['--c-kinds=+px']
" use universal ctags
let g:gutentags_ctags_extra_args += ['--output-format=e-ctags']
" 不自动加载gtags数据库文件
let g:gutentags_auto_add_gtags_cscope = 0
" 不使用默认热键
let g:gutentags_plus_nomap = 1
let g:airline#extensions#gutentags#enabled = 1
" open gutentags debug
"let g:gutentags_trace = 1
endfunction
你好,一直使用这个插件,非常好用, 非常感谢. 但是有个问题困扰我好久 在一个tags已经生成好的project里面, tags搜索功能正常 重启vim,仅打开一个工程内的文件a.c(任意一个),搜索tags失败 提示的错误是
ERROR: no gtags database for this project, check gutentags's documents
之后我再打开同工程的第二个文件b.c ,这个文件里搜索就能成功 此时再将a.c 这个buffer从vim中删掉, 重新打开,就可以搜索成功了再删掉a.这个buffer之前,,我尝试过重新save 修改a.c等,都无法在 a.c中搜索索引 变更顺序,先打开b.c 再打开a.c, 此时a.c就可以搜索, 而b.c 出现了上面的错误 能否请帮忙分析一下 下面是我的gutentags的配置,基本都是抄的你的文章