我正在使用Vim中的TagHighlight插件来突出显示我的自定义C ++类和成员。
我发现there这个技巧让我更好地理解了Vim如何看待某些词语。在某种程度上,我现在可以问:“好吧,为什么你把这个这个字用绿色?”
奇怪的是它运作良好,除了(很多)随机情况,请参阅:
我的图书馆名称空间sf
已突出显示,当我问到原因时,Vim会告诉hi<CTagsNamespace> trans<CTagsNamespace> lo<Constant>
,很棒。
但是std
没有,答案是hi<> trans<cParen> lo<>
。
我的变量angle
已被发现为hi<CTagsMember> trans<CTagsMember> lo<Member>
(为什么不呢?),但它的小“speed
没有:它是hi<> trans<cBlock> lo<>
。
那么......为什么? Vim是否可以实际阅读和理解我的整个项目,然后以正确的方式突出显示它?
答案 0 :(得分:1)
来自TagHighlight说明:
TagHighlight是一个突出显示类,变量名称的插件 Vim中源代码中的类型等。这使得它更快更容易 发现代码中的错误。 使用旺盛的ctags并解析 输出,typedef,#define,枚举名称等都清楚 以不同颜色突出显示。
您可能没有std命名空间的源,因此没有标记,因此没有突出显示。
你的ctags可能没有为局部变量生成标签,因此速度没有突出显示。但是你可能有一个名为angle的变量作为全局变量或成员变量,因此局部变量角度会被意外突出显示。
并且不要责怪Vim,这可能与插件和你的标签有关:)