You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对包含句号(.)的关键词实现Vim语法高亮?

你用的syn keyword规则不生效有两个核心原因:

  • syn keyword本身不支持正则转义语法,你写的foo\.bar这类带转义的写法对该类规则完全无效
  • Vim默认的关键字集合iskeyword不包含.字符,带点的字符串不会被识别为独立关键字,自然也匹配不到

方案1:修改关键字集合(适合只需要匹配精确串、不影响其他功能的场景)

先把.加入当前文件类型的关键字列表,再定义关键字规则即可:

setlocal iskeyword+=.
syn keyword myConstant foo.bar

方案2:使用syn match(更推荐,无副作用)

syn match支持正则匹配,专门用来匹配带特殊字符的自定义串,直接按需求写正则即可:

  1. 仅匹配foo.bar的写法:
syn match myConstant /foo\.bar/
  1. 同时匹配foo.bar和带双引号的"foo.bar"的写法:
syn match myConstant /\v"foo\.bar"|foo\.bar/

其中\v是Vim的very magic正则模式开关,可以减少不必要的转义符使用。

最后记得将自定义的高亮组关联到已有样式,否则不会显示高亮效果:

hi link myConstant Constant

如果你需要自定义高亮颜色,可以把上面的语句替换为自定义的hi规则即可。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:12:05