color highlight仅识别颜色字面量,不处理变量名或函数调用;默认支持css/scss/less/html/vue等语言,js/ts字符串需手动开启colorhighlight.showcolorsinstring。

Color Highlight 只对颜色值生效,不是通用高亮工具
Color Highlight 插件只识别并渲染颜色字面量,比如 #3498db、rgb(255, 99, 71)、var(--primary)(需额外配置)、blue。它不处理变量名、函数调用或任意文本——选中 console.log 按 Ctrl+H 不会高亮,这是设计使然,不是插件坏了。
常见误操作包括:装了 Color Highlight 就以为能高亮关键词,结果发现没反应;或者在 .js 文件里写 const color = "#ff0000",但字符串内部的 "#ff0000" 默认不被识别(需开启 colorHighlight.showColorsInString)。
- 默认支持的语言:css、scss、less、html(style 标签内)、vue(
<style></style>块) - 若在 .ts 或 .js 中使用 CSS-in-JS(如 styled-components),需手动把
typescript或javascript加入colorHighlight.languages数组 - 注释里的颜色(如
// #ff6b6b)默认不渲染,要开启colorHighlight.showColorsInComment
highlight-words 才是真正用来高亮“选中词”的插件
想让当前选中的单词(比如 useState、API_URL、handleClick)在整个文件甚至跨文件高亮?必须用 highlight-words,且必须手动配置 settings.json,UI 设置面板里改无效。
典型错误是只安装插件却不配 highlightwords.colors —— 插件会静默失败,什么也不显示。它要求至少两个颜色对象,否则直接跳过渲染。
-
highlightwords.defaultMode: 3是关键:全词匹配 + 忽略大小写,避免map匹配到flatMap -
highlightwords.box在深色主题下建议设"dark": false,否则边框和背景融合,看起来像没高亮 - 快捷键需手动绑定:
Ctrl+Shift+H(Windows/Linux)或Cmd+Shift+H(macOS),不能依赖默认快捷键 - 高亮默认只作用于当前编辑器,关掉文件就消失;如需持久化,得配合
highlightwords.persist(v1.5+)
别忽略 editor.decorations 这个开关
无论 Color Highlight 还是 highlight-words,最终都靠 VSCode 的装饰(Decorations)机制画色块或背景。如果全局关了这个能力,所有插件高亮都会失效,但错误不报、界面无提示。
检查方式很简单:打开设置搜索 editor.decorations,确认值为 true。这个选项可能被某些主题插件或性能优化脚本悄悄关闭。
- 临时验证:运行
code --disable-extensions启动纯净 VSCode,再只启用目标插件测试 - 主题冲突常见于自定义主题或低对比度主题,色块太淡或完全透明,此时调整
colorHighlight.opacity或换主题更直接 - VSCode 1.89+ 对装饰渲染做了 lazy load 优化,首次打开大文件时可能延迟 1–2 秒才出现色块,属正常行为
语言模式识别错误会导致高亮完全失效
VSCode 不是靠文件后缀判断语法,而是靠右下角状态栏显示的语言模式(Language Mode)。哪怕你打开的是 styles.css,如果状态栏显示的是 Plain Text,Color Highlight 就不会工作。
尤其容易出问题的场景:新建未保存文件、从剪贴板粘贴代码、用 files.associations 错误映射了扩展名。
- 手动切换语言模式:点击右下角语言标识 → 选择对应语言(如 CSS、SCSS、HTML)
- 自动关联:在
settings.json中配置"files.associations": {"*.wxss": "css"}等映射 - Vue 单文件组件中,
<style lang="scss"></style>必须有lang属性,否则会被识别为普通 HTML,不触发 SCSS 颜色解析











