用Highlight插件配正则最稳,5分钟生效;需设scope为comment、正则用(TODO|FIXME)(JSON双反斜杠)、style推荐fill;Find All只是临时标记,不赋予语法作用域,无法联动主题。

用 Highlight 插件配正则最稳,5 分钟生效
别折腾语法文件或 color scheme,直接装 Highlight 插件——它不依赖主题、不挑语言、不用重启,改完配置立刻看到高亮。
操作路径:Ctrl+Shift+P → Package Control: Install Package → 搜 Highlight 安装;然后打开 Preferences → Package Settings → Highlight → Settings - User,填入:
{
"highlights": [
{
"name": "todo_fixme",
"scope": "comment",
"regex": "\b(TODO|FIXME)\b",
"style": "fill",
"color": "hsl(48, 100%, 85%)"
}
]
}
注意三点:scope 必须是 comment,否则会误匹配字符串里的 "TODO";\b 是双反斜杠(JSON 字符串转义);style 推荐 fill 而非 underline,更醒目且不遮挡文字。
为什么 Find All 不算“高亮”
Ctrl+F 输入 (TODO|FIXME) 并点 Find All,只是临时界面标记:关掉查找框就消失,不跨文件,也不被主题识别。它没给文本打上任何 scope,所以 color_scheme 完全无从响应。
真正高亮 = 给文本赋予语法作用域(如 keyword.other.todo),才能和主题联动、被其他插件复用、在侧边栏缩略图里也可见。只靠查找,等于“人眼找”,不是“编辑器认”。
TodoReview 配了 keywords 却没颜色?正常
TodoReview 默认只扫描并列表,不负责渲染颜色。它生成的 keyword.other.todo scope 能不能显示颜色,完全取决于你当前 .sublime-color-scheme 是否定义了该 scope 的规则。
多数轻量主题(比如默认的 Monokai.sublime-color-scheme)根本没写这一条,所以你看到的还是灰色注释。换主题(如 Ayu)可能立刻见效,但不如直接用 Highlight 插件覆盖来得确定。
如果非要走 TodoReview 链路,必须确认设置里有:"pattern_names": ["todo"],且 patterns 中的正则能精准命中,例如:"todo": "(?i)\bTODO\b" —— 否则连 scope 都不会打上去。
正则写错的典型表现和排查法
高亮没出现?先看状态栏:把光标停在 // TODO 上,如果右下角没显示 regex match,说明正则根本没命中。
-
\bTODO\b匹配// TODO,但不匹配// TODO_LIST或// TODO:(冒号破坏单词边界) - 想兼容冒号和空格,可改用
\b(TODO|FIXME)\b[:\s]*,但别加.*—— Sublime 正则引擎对贪婪量词处理差,大文件易卡死 - 颜色太淡?别去动
region.yellowish这类 theme 内部规则,Highlight插件只认自己配置里的color字段
最容易被忽略的是 scope 和正则的耦合:哪怕正则全对,scope 写成 source 或漏掉,高亮也不会出现在注释里——因为插件只在指定 scope 区域内执行匹配。











