Sublime Text默认不识别TODO/FIXME为特殊标记,仅作普通注释显示灰色文字;需用Find功能临时高亮或Highlight插件实现持久高亮,TodoReview则专注任务列表管理而非颜色渲染。

Sublime Text 默认不把 TODO 和 FIXME 当作特殊标记,只当普通注释处理——所以你看到的只是灰色文字,不是“没高亮”,是压根没被识别。
用内置 Find 功能临时高亮最省事
不需要装插件,适合快速扫一遍当前文件或小项目:
- 按
Ctrl+F(Windows/Linux)或Cmd+F(macOS),输入正则表达式:(TODO|FIXME) - 务必勾选右下角的
.*按钮(启用正则模式) - 点
Find All,所有匹配项会以当前主题的“查找高亮色”临时标出(通常黄色背景) - 想在整个项目搜?换用
Ctrl+Shift+F→ 填入同样正则 → 点Find in Files
注意:这个高亮是临时的、只在当前查找会话生效;关闭查找面板就消失,也不影响语法着色。
用 Highlight 插件实现持久高亮
如果你希望每次打开文件都自动看到 TODO/FIXME 被下划线或背景色标出,Highlight 插件比改主题更轻量、更可控:
- 通过
Package Control: Install Package安装Highlight - 进入
Preferences → Package Settings → Highlight → Settings - User - 填入以下配置(关键点:必须限定作用域为
comment,否则会误标代码里的字符串):
{
"highlights": [
{
"name": "todo_highlight",
"scope": "comment",
"regex": "\b(TODO|FIXME)\b",
"style": "fill",
"icon": "dot"
}
]
}\b 是单词边界,避免匹配到 TODO_LIST 或 FIXME_ME 这类变量名;style: "fill" 表示背景色填充,也可换成 "underline" 或 "outline"。
TodoReview 插件为什么常“漏扫”?
TodoReview 的核心价值不在高亮,而在集中管理——但它默认不修改编辑器颜色,只生成任务列表。容易出问题的地方是:
- 它默认只扫描
source类型的 scope(比如source.python),但如果你在 Markdown、JSON 或自定义配置文件里写了TODO,得手动加进file_patterns - 关键词匹配默认大小写敏感(
"case_sensitive": true),而多数人写的是// todo小写,结果扫不到 - 它的高亮依赖于你是否启用了
"show_in_status_bar"或配合了其他高亮插件;单独装TodoReview不会让代码变色 - 如果项目里有大量
node_modules或__pycache__,没配folder_exclude_patterns会导致扫描卡顿甚至失败
别碰 .tmTheme 主题文件改高亮
网上有教程说“编辑 .tmTheme 文件加 keyword.todo scope 就能高亮”,这在 Sublime 4 中基本失效:
- Sublime 4 默认使用
.sublime-color-scheme(JSON 格式),旧版.tmTheme已被弃用 - 即使你硬改,
TODO在原始语法中根本没被赋予独立 scope——它只是comment下的一个普通文本片段,没有 scope 可绑 - 真要走这条路径,得先重写语法文件(
.sublime-syntax)提升TODO的 scope 层级,工程量远超装一个Highlight插件
真正稳定的方案只有两个:用 Highlight 插件做运行时正则匹配,或接受 TodoReview 的列表式管理——二者不冲突,可以共存。别在 scope 和 theme 上绕弯子,那不是 Sublime 的设计习惯。


















