我试图找出一种方法来突出我常用的某些typedef。例如:
syn match U64 "u64"
hi def link U64 Type
这适用于“u64”实际上标记为一种类型。问题是,如果我要创建一个变量“u64 u64copy”(只是一个例子,不要挂断是否有东西真的有这个名字)“u64copy”中的“u64”仍然会突出显示。我已经考虑了区域,但我不知道我会设置哪个区域,因为这可能是代码中的任何问题。
答案 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