" Create "tags" file in your project's root first.
" Then :Ctags LANG to fill it.
-function! s:ctags(lang, verbose)
+function! s:ctags(lang, onlyCmd, verbose)
let dst = tagfiles()[0]
let src = "/" . join(split(dst, "/")[:-2], "/")
if dst[0] != "/"
\'uctags',
\'--languages=' . a:lang,
\'--python-kinds=-i',
+ \'--c++-kinds=+p',
\'--recurse',
\]
if a:verbose == v:true | let cmdline += ['--verbose'] | endif
let cmdline += ['-f', dst, src]
+ if a:onlyCmd == v:true
+ echo join(cmdline, " ")
+ return
+ endif
execute "!" . join(cmdline, " ")
if a:verbose != v:true | redraw! | endif
endfunction
-command! -nargs=1 Ctags silent call s:ctags(<f-args>, v:false)
-command! -nargs=1 Ctagsv silent call s:ctags(<f-args>, v:true)
+command! -nargs=1 Ctags silent call s:ctags(<f-args>, v:false, v:false)
+command! -nargs=1 Ctagsv silent call s:ctags(<f-args>, v:true, v:false)
+command! -nargs=1 Ctagscmd call s:ctags(<f-args>, v:true, v:true)