直接用Highlight插件配正则实现持久高亮,因Find All仅为临时界面反馈,不跨文件、不绑定语法scope,无法被主题识别;Highlight需设scope为comment、正则加单词边界、style选fill。

直接装 Highlight 插件配正则,5 分钟内生效,不重启、不挑文件类型、不依赖项目结构。
为什么不能只靠 Find All 临时高亮?
Find All 只是界面层视觉反馈:关掉查找框就消失,不跨文件,也不绑定语法 scope。它不会给 TODO 打上 comment.todo 这类可被主题识别的标记,所以换行、切 tab、保存后全没——人眼要的是“一直看见”,不是“刚点开时闪一下”。
真正高亮 = 给文本赋予 scope + 颜色主题响应该 scope。这一步 Find All 做不了。
Highlight 插件怎么配才不出错?
关键在三点:scope 必须设为 comment、正则加单词边界、style 选 fill 或 underline。
-
scope写成source或留空 → 会误中字符串里的"TODO",污染语义 - 正则写成
TODO|FIXME(没)→ 匹配到TODO_LIST或TODOX,高亮失控 - JSON 字符串里
要写成\b,否则配置解析失败,插件静默失效 -
style用fill比underline更醒目,尤其在深色主题下
用户配置示例(Preferences → Package Settings → Highlight → Settings - User):
{
"highlights": [
{
"name": "todo_fixme",
"scope": "comment",
"regex": "\b(TODO|FIXME)\b",
"style": "fill",
"color": "hsl(48, 100%, 85%)"
}
]
}
TodoReview 为啥配了 keywords 却没颜色?
TodoReview 默认只扫描、列表、跳转,它不负责高亮渲染。它生成的 keyword.other.todos scope 能否显色,完全取决于你当前 color scheme 是否定义了该 scope 的颜色规则。
多数轻量主题(比如默认的 Monokai.sublime-color-scheme)根本没写这一条,所以你看到的还是灰色注释。
- 换主题(如 Ayu 或 Spacegray)可能立刻见效,但不通用
- 手动改
.sublime-color-scheme加 rule 很麻烦,且容易被更新覆盖 - 最稳路径:别指望
TodoReview驱动高亮,老实用Highlight直接覆盖
容易被忽略的一点:正则是否生效,别靠肉眼猜。光标停在 TODO 上,看状态栏是否显示 regex match —— 没显示,说明配置没命中,先调正则,再调颜色。











