当前的ctags稳定版本是5.8,默认不支持Go语言。
$ ctags --version Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert Compiled: Jul 9 2009, 17:05:35 Addresses: <[email protected]>, http://ctags.sourceforge.net Optional compiled features: +win32, +regex, +internal-sort
在文件"~/.ctags"中增加以下配置以支持Go语言:
# File: ~/.ctags --langdef=Go --langmap=Go:.go --regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/f,func/ --regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/v,var/ --regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/t,type/
Ref: http://stackoverflow.com/questions/8204367/ctag-database-for-golang
支持的文件后缀和类型:
$ ctags --list-languages $ ctags --list-maps $ ctags --list-kinds
默认支持的语言:
Ant *.build.xml Asm *.asm *.ASM *.s *.S *.A51 *.29[kK] *.[68][68][kKsSxX] *.[xX][68][68] Asp *.asp *.asa Awk *.awk *.gawk *.mawk Basic *.bas *.bi *.bb *.pb BETA *.bet C *.c C++ *.c++ *.cc *.cp *.cpp *.cxx *.h *.h++ *.hh *.hp *.hpp *.hxx C# *.cs Cobol *.cbl *.cob *.CBL *.COB DosBatch *.bat *.cmd Eiffel *.e Erlang *.erl *.ERL *.hrl *.HRL Flex *.as *.mxml Fortran *.f *.for *.ftn *.f77 *.f90 *.f95 HTML *.htm *.html Java *.java JavaScript *.js Lisp *.cl *.clisp *.el *.l *.lisp *.lsp Lua *.lua Make *.mak *.mk [Mm]akefile GNUmakefile MatLab *.m OCaml *.ml *.mli Pascal *.p *.pas Perl *.pl *.pm *.plx *.perl PHP *.php *.php3 *.phtml Python *.py *.pyx *.pxd *.pxi *.scons REXX *.cmd *.rexx *.rx Ruby *.rb *.ruby Scheme *.SCM *.SM *.sch *.scheme *.scm *.sm Sh *.sh *.SH *.bsh *.bash *.ksh *.zsh SLang *.sl SML *.sml *.sig SQL *.sql Tcl *.tcl *.tk *.wish *.itcl Tex *.tex Vera *.vr *.vri *.vrh Verilog *.v VHDL *.vhdl *.vhd Vim *.vim YACC *.y Go *.go