" Universal Ctags creator " Maintainer: Sergey Matveev " License: GNU General Public License version 3 of the License or later " " Create "tags" file in your project's root first. " Then :Ctags LANG to fill it. function! s:ctags(lang, onlyCmd, verbose) let dst = tagfiles()[0] let src = "/" . join(split(dst, "/")[:-2], "/") if dst[0] != "/" let dst = getcwd() . "/tags" let src = getcwd() endif let cmdline = [ \"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(, v:false, v:false) command! -nargs=1 Ctagsv silent call s:ctags(, v:true, v:false) command! -nargs=1 Ctagscmd call s:ctags(, v:true, v:true)