ctags5.8通过自定义扩展支持golang语言

chenbaoke · · 1731 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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
Scheme
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



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:chenbaoke

查看原文:ctags5.8通过自定义扩展支持golang语言

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1731 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传