Vim语法只匹配单词

Vim语法只匹配单词,vim,syntax,Vim,Syntax,我试图找出一种方法来突出显示我常用的某些typedef。例如: syn match U64 "u64" hi def link U64 Type 这是因为“u64”实际上被标记为一个类型。问题是,如果我要生成一个变量“u64 u64copy”(只是一个示例,不要挂断某个东西是否实际具有该名称),“u64copy”中的“u64”仍然高亮显示。我已经考虑过区域,但我不知道我会设置哪个区域,因为这可能是代码中任何地方的问题。您可以简单地将单词边界添加到正则表达式中: syn match U64 "\

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

syn match U64 "u64"
hi def link U64 Type

这是因为“u64”实际上被标记为一个类型。问题是,如果我要生成一个变量“u64 u64copy”(只是一个示例,不要挂断某个东西是否实际具有该名称),“u64copy”中的“u64”仍然高亮显示。我已经考虑过区域,但我不知道我会设置哪个区域,因为这可能是代码中任何地方的问题。

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

syn match U64 "\<u64\>"
syn匹配U64“\”

标记
\
分别匹配单词开头和结尾的零长度序列。

您只需将单词边界添加到正则表达式:

syn match U64 "\<u64\>"
syn匹配U64“\”

标记
\
分别匹配单词开头和结尾的零长度序列。

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

syn keyword cType       int long short char void
:语法匹配
采用正则表达式;对于您的用例来说,它太强大(而且没有必要)。我建议您也遵守命名约定,并在语法组名称前加上文件类型(例如
c
):

syn keyword cU64 u64
hi def link cU64 Type
或者,只需添加到内置语法组:

syn keyword cType u64

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

syn keyword cType       int long short char void
:语法匹配
采用正则表达式;对于您的用例来说,它太强大(而且没有必要)。我建议您也遵守命名约定,并在语法组名称前加上文件类型(例如
c
):

syn keyword cU64 u64
hi def link cU64 Type
或者,只需添加到内置语法组:

syn keyword cType u64

成功了,非常感谢!成功了,非常感谢!