Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ctags5.8通过自定义扩展支持golang语言大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

Ctags工具是用来遍历源代码文件生成tags文件,这些tags文件能被编辑器或其它工具用来快速查找定位源代码中的符号(tag/symbol),如变量名,函数名等。比如,tags文件就是Taglist和OmniCppComplete工作的基础。

其安装和使用本地不做过多赘述。

现在说一下如何配置自己的ctags使其支持golang

问题描述:

如果发现自己的ctags无法支持golang,首先check一下ctags版本 ctags :

ctags --version
Exuberant Ctags 5.8,Copyright (C) 1996-2009 Darren Hiebert
  Compiled: Sep 13 2015,03:28:50
  Addresses: <dhiebert@users.sourceforge.net>,http://ctags.sourceforge.net
  Optional compiled features: +wildcards,+regex


发现其为5.8,目前官方说明ctags5.8稳定版本是不支持golang的。


可通过命令查看其支持的语言:

ctags --list-languages
Ant
Asm
Asp
Awk
Basic
BETA
C
C++
C#
Cobol
DosBatch
Eiffel
Erlang
Flex
Fortran
HTML
Java
JavaScript
Lisp
Lua
Make
MatLab
OCaml
Pascal
Perl
PHP
Python
REXX
Ruby
scheR_653_11845@e
Sh
SLang
SML
sql
Tcl
Tex
Vera
Verilog
VHDL
Vim
YACC

发现其中没有golang。


解决方案:

在~/.ctags文件(没有则新建)中添加如下代码

--langdef=Go
--langmap=Go:.go
--regex-Go=/func([ \t]+\([^)]+\))?[ \t]+([a-zA-Z0-9_]+)/\2/d,func/
--regex-Go=/var[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/d,var/
--regex-Go=/type[ \t]+([a-zA-Z_][a-zA-Z0-9_]+)/\1/d,type/

然后再通过 ctags --list-languages 去查看发现既可以支持golang语言,后面就可以通过ctags对golang进行愉快的跳转与回跳了。

其中ctags中查找支持文件类型和后缀可以通过如下几个命令去查看:

ctags --list-languages
ctags --list-kinds
ctags --list-maps


更多ctags用法可以通过ctags --Help进行查看。

链接http://stackoverflow.com/questions/8204367/ctag-database-for-go

大佬总结

以上是大佬教程为你收集整理的ctags5.8通过自定义扩展支持golang语言全部内容,希望文章能够帮你解决ctags5.8通过自定义扩展支持golang语言所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。