exuberant ctags支持C++11吗?

3

我喜欢通过TagHighlight插件在vim中高亮语法,该插件使用exuberant ctags生成一个tags文件,供vim用于语法。

直到最近,我仅使用常规的枚举类型,例如

enum count {ONE, TWO, THREE};

这个标记是正确的。我们的团队最近决定支持c++11,我尝试了

enum class count {ONE, TWO, THREE};

现在将枚举“count”标记为类而不是枚举,“ONE”和“TWO”被标记为类成员,“THREE”则未被标记。

我尝试使用--regex-c++=/^[ \t]*(enum)[ \t]+(class)[ \t]+([a-zA-Z0-9_]+)/\3/e,enum/作为正则表达式,但没有成功。似乎enum class应该是从中生成ctags的标准类型,但我没有找到任何人抱怨。我是否愚蠢地忽略了一些简单的东西?

ctags-exuberant --version Exuberant Ctags 5.9~svn20110310,版权所有(C)1996-2009 Darren Hiebert 编译时间:Sep 29 2014,16:06:25 地址:<dhiebert@users.sourceforge.net>,http://ctags.sourceforge.net 可选编译功能:+wildcards,+regex

在vim中自定义语法高亮的另一种方法也将不胜感激。

1个回答

11

有一个更新的版本的exuberant ctags称为universal ctags,可以在这里找到。与exuberant ctags相比,它支持C++11以及更多的语言(完整列表在这里)。如果您使用的是Mac,可以使用Homebrew进行安装。

brew tap universal-ctags/universal-ctags
brew install --HEAD universal-ctags

Universal ctags只是exuberant ctags的一个分支,可以作为其完整替代品。


1
对于 Arch Linux 用户:我刚刚发现 ctags-fishman-git AUR 包实际上就是 universal-ctags :) - VanLaser

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接