Vim语法只匹配单词

时间:2016-08-02 13:55:29

标签: vim syntax

我试图找出一种方法来突出我常用的某些typedef。例如:

syn match U64 "u64"
hi def link U64 Type

这适用于“u64”实际上标记为一种类型。问题是,如果我要创建一个变量“u64 u64copy”(只是一个例子,不要挂断是否有东西真的有这个名字)“u64copy”中的“u64”仍然会突出显示。我已经考虑了区域,但我不知道我会设置哪个区域,因为这可能是代码中的任何问题。

2 个答案:

答案 0 :(得分:4)

您可以简单地为正则表达式添加单词边界:

syn match U64 "\<u64\>"

令牌\<\>分别匹配单词开头和结尾的零长度序列。

答案 1 :(得分:0)

如果查看$VIMRUNTIME/syntax/c.vim中的默认C语法脚本(例如),您会注意到有一个特殊的:syntax keyword命令。

syn keyword cType       int long short char void

:syntax match采用正则表达式;它对你的用例来说太强大了(也没必要)。我建议同时遵守命名约定并将文件类型(例如c)添加到语法组名称中:

syn keyword cU64 u64
hi def link cU64 Type

或者,只需添加到内置语法组:

syn keyword cType u64