必须安装 language-todo 插件,否则 // todo: 等注释无法高亮;它支持 10+ 种前缀、不区分大小写但要求冒号后空格;失效常见原因包括文件被识别为 plain text、编码含 bom 或与其他语言插件冲突。

必须装 language-todo,否则高亮根本不生效
Atom 本身不识别 // TODO: 这类注释,language-todo 是唯一提供语法着色能力的插件,不是“锦上添花”,而是前提条件。没它,todo-show 能搜到内容,但编辑器里文字不变色、无图标、无法一眼定位。
language-todo 自动匹配 // TODO:、/* FIXME */、# HACK 等 10+ 种前缀,不区分大小写,但严格要求冒号后带空格:// TODO: fix this ✅,// TODO:fix this ❌。
常见失效原因:
- 当前文件被识别为
Plain text(右下角状态栏显示),而非对应语言(如JavaScript)——检查文件扩展名或手动点击状态栏切换语言模式 - 文件编码异常(如含 BOM 头),导致语法解析中断
- 与其他语言插件冲突(极少见,但
language-javascript-better曾有 scope 覆盖问题)
todo-show 才能全局搜索所有 TODO 注释
todo-show 是唯一支持跨文件正则扫描的插件,快捷键默认为 Alt + Shift + T(Windows/Linux)或 Cmd + Shift + T(macOS)。它不依赖 AST,快但依赖配置。
关键配置项在 Settings → Packages → todo-show → Settings 中:
-
findTheseTodos:数组形式,如["TODO", "FIXME", "BUG"],删掉不用的可减少误报 -
ignoreThesePaths:务必填["node_modules", ".git", "dist"],否则搜索卡死甚至拖垮 Atom -
autoRefresh建议关闭——保存文件后手动按一次快捷键,比自动触发更可控、更少错漏
注意:搜索结果点击可跳转到行,但双击不会自动打开文件(需单击 + 回车),这是操作预期偏差,不是 bug。
别把 tasks 插件当成代码注释高亮工具
tasks 插件只处理独立的 .todo 或 .taskpaper 文件,对源码里的 // TODO: 完全无感。装了它却想高亮注释,结果必然是“什么都没发生”。
正确用法:
- 新建文件,扩展名必须是
.todo(不能是.txt或无后缀) - 支持标准语法:
(A) 买咖啡 @today、- [x] 已完成、=== Archive === - 快捷键:
Ctrl + Enter(Win/Linux)或Cmd + Enter(macOS)新增任务;Ctrl + D切换完成状态
tasks 和 todo-show 数据完全隔离,不共享、不互通,截至 2026 年 9 月仍是两个平行系统。
quick-highlight 可以补足多颜色自定义标记
如果想让 TODO 黄底、FIXME 红底、NOTE 绿底,quick-highlight 是最直接的方案。它不依赖语言识别,纯靠字符串匹配,适合快速标记。
配置路径:Atom → Config → Open Config Folder → config.cson,加这段:
"quick-highlight": {
"highlightByInputKeymaps": {
"ctrl-shift-1": { "pattern": "TODO", "className": "quick-highlight-todo", "backgroundColor": "rgba(255, 204, 0, 0.3)" },
"ctrl-shift-2": { "pattern": "FIXME", "className": "quick-highlight-fixme", "backgroundColor": "rgba(255, 87, 51, 0.3)" },
"ctrl-shift-3": { "pattern": "NOTE", "className": "quick-highlight-note", "backgroundColor": "rgba(102, 187, 106, 0.3)" }
}
}
然后在 keymap.cson 里绑定快捷键,比如:
'atom-text-editor': 'ctrl-shift-1': 'quick-highlight:highlight-by-input' 'ctrl-shift-2': 'quick-highlight:highlight-by-input' 'ctrl-shift-3': 'quick-highlight:highlight-by-input'
注意:它和 language-todo 不冲突,可共存;但若同时启用,language-todo 的图标会覆盖 quick-highlight 的背景色,视觉上可能被遮挡。
真正容易被忽略的是:所有高亮都只作用于当前已打开的文件标签页,不会主动扫描未加载的项目文件,也不进 node_modules 或压缩包——这不是限制,而是设计使然。











