vscode原生不支持行级文字备注高亮,仅提供光标行背景色(editor.linehighlightbackground);需用better comments(前缀匹配)、highlight(正则匹配)或todo highlight(标准标记)等插件实现,且配置须精准——如字段名、alpha值、语言过滤、重启生效等缺一不可。

VSCode 本身不支持“给某一行加高亮备注”,所谓“行级备注”必须靠插件实现,且不同插件行为差异极大——直接装插件不配参数,大概率什么也看不到。
为什么原生 VSCode 无法给单行加备注高亮
VSCode 的 editor.lineHighlightBackground 只控制当前光标所在行的背景色(即“行高亮”),它不是“备注”,不能写文字、不能持久化、不能跨文件复用。你点到哪行,哪行亮;切走就灭。这不是 bug,是设计如此。
想让某行带文字备注并长期高亮?必须引入第三方逻辑:要么靠注释解析(如 // TODO),要么靠独立标记系统(如 Better Comments 或 Highlight 插件)。
Better Comments:用前缀触发语义化高亮备注
适合写带意图说明的临时备注,比如调试提示、风险标注、待确认项。它不依赖行号,而是靠注释前缀匹配。
- 安装插件后,默认识别
// !(红色)、// ?(蓝色)、// todo(橙色)等 - 在任意行开头加
// ! 紧急修复:这里会内存泄漏,整行就会红底白字高亮 - 修改
settings.json中的better-comments.tags可增删前缀,比如加一个review标签 - 注意:
// !必须紧贴注释符,//!或// !不生效 - 改完配置需重启 VSCode 才生效,不是重载窗口就够
Highlight 插件:用正则精准匹配任意行并加备注样式
适合团队统一规范或需要强控制的场景,比如所有含 // HACK: 的行都加紫色边框+黄色背景。
- 安装 Highlight 插件后,在
settings.json中配置highlight.regexes - 示例:匹配 JS/TS 文件中以
// NOTE:开头的整行,并加绿色背景+粗体
"highlight.regexes": {
"(//\s*NOTE:.*)$": {
"filterLanguageRegex": "^(javascript|typescript)$",
"decorations": [
{ "backgroundColor": "#98C37920", "fontWeight": "bold" }
]
}
}
filterLanguageRegex 必须写对,否则在 JSON 或 Markdown 里也会误匹配$ 确保只匹配整行,避免把 console.log('// NOTE: xxx') 这种字符串也高亮#98C37920),否则会盖住语法高亮TODO Highlight:只对标准标记生效,但支持跨语言扩展
如果你习惯用 // TODO // FIXME 这类,它是轻量首选,但默认不覆盖 .vue .md 等文件。
- 装完插件后,先检查右下角是否显示 “TODO Highlight” —— 没显示说明没启用
- 在
settings.json中补全语言支持:"todoHighlights.languages": ["javascript", "typescript", "python", "vue", "markdown"] - 自定义关键词时,字段名必须是
todoHighlights.keywords(2026 年主流版本),不是todo.highlight.keywords - 每个
text值必须全大写、无空格、无标点,// REVIEW可以,// review不行 - 已打开的文件要手动关闭再重开,新设置才会生效
真正难的不是装插件,而是搞清「你想备注的是什么」:是临时调试提示?是团队协作标记?还是代码审查锚点?选错插件方向,配再细也没用。另外,所有插件的正则/关键词配置一旦写错字段名或漏掉 alpha 值,高亮就会静默失效——没有报错,只有空白。











