highlight-words是唯一能稳定实现全文件同名变量高亮的插件,需配置colors至少2组、defaultmode为3、box.dark适配主题;color highlight仅高亮颜色值且依赖语言模式;todo highlight专用于注释标记;log file highlighter需手动切换语言模式为log。

highlight-words:手动高亮任意选中词,不是颜色值
VS Code 原生不支持“选中一个变量名后,全文件高亮所有同名出现”,highlight-words 是唯一能稳定做到这点的插件。它和 Color Highlight 完全无关——后者只处理 #ff6b6b、rgb(255, 107, 107) 这类颜色字面量;而 highlight-words 处理的是你手动选中的任意文本,比如 userId、handleClick 或 MAX_RETRY_COUNT。
安装后必须改 settings.json,否则默认不生效:
-
"highlightwords.colors"至少填 2 组颜色,例如[{"light":"#fff3cd","dark":"#e67e22"}],少于 2 组会静默失效 -
"highlightwords.defaultMode": 3表示“全词 + 忽略大小写”,避免选中map却高亮了flatMap或mapping -
"highlightwords.box"中"dark": false很关键:深色主题下设为true,边框会融进背景,看起来像没高亮 -
"highlightwords.showSidebar": false推荐关闭,否则左侧多出 HIGHLIGHTS 栏,干扰导航
Color Highlight:只高亮颜色值,自动生效但依赖语言模式
Color Highlight 不是通用高亮工具,它的作用非常明确:在 CSS/SCSS/HTML 等支持颜色语法的文件里,把 #3498db、hsl(200, 100%, 50%)、rebeccapurple 这类值渲染成对应色块。它不会高亮变量名、函数名或字符串内容。
常见失效原因不是插件坏了,而是语言模式没对:
- 右下角状态栏显示
Plain Text?点击它,手动选CSS、HTML或SCSS - Vue 单文件组件里的
<style></style>块默认被识别为vue模式,但colorHighlight.languages默认不含vue,需手动加进去 - 注释里的颜色(如
// #ff6b6b)默认不渲染,要开"colorHighlight.showColorsInComment": true - 如果色块完全不出现,先关掉所有插件,用
code --disable-extensions启动测试,排除冲突
TODO Highlight:专用于注释标记,支持自定义关键词和范围控制
TODO Highlight 的目标很窄:只扫描注释中的待办标记,比如 // TODO、/* FIXME */、# NOTE。它不会匹配字符串里或变量名里的 “TODO”,也不会高亮非注释上下文。
配置重点不在“能不能高亮”,而在“在哪高亮、怎么高亮”:
- 新增关键词必须写进
todoHighlights.keywords数组,格式是{"pattern": "REVIEW", "color": "#007acc"},不是简单加字符串 - 想只在
.ts和.py文件里生效?配"todoHighlights.include": ["**/*.ts", "**/*.py"] - 想排除
node_modules和生成文件?加"**/node_modules/**"到exclude里 - 高亮后右侧概览标尺没色块?检查
editor.decorations是否为true,某些主题会禁用装饰
Log File Highlighter:日志文件高亮必须手动切语言模式
Log File Highlighter 不按文件后缀工作,只认 VS Code 的语言模式。哪怕文件叫 app.log 或 server.out,只要语言模式是 Plain Text,就什么也不高亮。
启用步骤极简但容易漏掉一步:
- 右键日志文件 → Change Language Mode → 选
Log(不是Plain Text) - 如果列表里没有
Log,去settings.json加"files.associations": {"*.log": "log", "*.out": "log"} - 它高亮
ERROR、WARN、时间戳(如2026-08-05 13:42:11)、HTTP 状态码(404、500),但不解析 JSON 字段 - 长日志行被截断?开
"editor.wordWrap": "on",否则带trace_id的堆栈信息根本看不到全貌
真正容易卡住的,往往不是插件装错了,而是语言模式没切、settings.json 没配、或者颜色数组少了一组——这些地方不报错,只静默失效。











