旺盛的ctags是否支持c ++ 11?

时间:2015-07-09 22:29:37

标签: c++11 vim enums exuberant-ctags

我喜欢通过TagHighlight插件在vim中使用高级语法,该插件使用丰富的ctags生成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/作为正则表达式,但未成功。似乎枚举类应该是从中生成ctags的标准类型,但是没有发现任何人抱怨它。我愚蠢地忽略了一些简单的东西吗?

ctags-exuberant --version Exuberant Ctags 5.9~svn20110310, Copyright (C) 1996-2009 Darren Hiebert Compiled: Sep 29 2014, 16:06:25 Addresses: <dhiebert@users.sourceforge.net>, http://ctags.sourceforge.net Optional compiled features: +wildcards, +regex

在vim中自定义语法突出显示的另一种方法也将受到赞赏。

1 个答案:

答案 0 :(得分:10)

有一个名为universal ctags here的充满活力的ctags的最新版本。与繁荣的ctags相比,它支持C ++ 11以及更多语言(完整列表为here)。如果您使用的是Mac,则可以使用

安装自制程序
brew tap universal-ctags/universal-ctags
brew install --HEAD universal-ctags

Universal ctags只是一个充满活力的ctags的分支,应该可以作为它的完全替代品。