vscode实现代码高亮需按目标区分:选中词用highlight-words插件(需settings.json配置colors和defaultmode)、颜色值用color highlight插件、语法元素自定义用editor.tokencolorcustomizations配合inspect editor tokens查scope、语言增强需装volar/vetur等专属插件。

VSCode 默认已有基础语法高亮,但“实现代码高亮效果”这个需求本身不明确——你要高亮的是颜色值、注释、关键词、选中词,还是某类语言结构?不同目标对应完全不同的插件和配置方式,不能一概而论。
要高亮选中的代码词(比如变量名、函数名),用 highlight-words
这是目前唯一能稳定支持「手动触发、多色叠加、全词匹配、跨文件生效」的插件。它不依赖语言模式,JS/TS/Vue/HTML/JSON 全都能用。
-
highlight-words必须在settings.json中显式配置,只装插件没用 -
"highlightwords.colors"至少写两组颜色,否则高亮不显示(插件有校验) -
"highlightwords.defaultMode": 3表示「全词 + 忽略大小写」,避免选中map却高亮了flatMap或mapStateToProps -
"highlightwords.box"在深色主题下建议设"dark": false,否则边框会融进背景里,看起来像没生效 - 快捷键需手动绑定:
Ctrl+Shift+H是推荐组合,但要检查是否被Auto Rename Tag或Prettier占用
要高亮 CSS/SCSS 中的颜色值(如 #ff6b6b、rgb(255, 107, 107)),用 Color Highlight
它只识别标准颜色语法,对变量里的颜色字符串(如 const primary = '#ff6b6b')默认不处理,除非配合正则扩展。
- 安装即用,无需额外配置
- 不支持高亮非颜色文本(比如你选中一个函数名,它不会响应)
- 如果颜色写在 JS 字符串或 Vue template 插值里,大概率不生效——这不是 bug,是设计限制
要自定义语法元素颜色(比如把所有 function 关键字标红),改 editor.tokenColorCustomizations
这是 VSCode 原生机制,和插件无关,靠 scope 精准控制。
- 先用
Help → Toggle Developer Tools,再点编辑器任意位置,调出Inspect Editor Tokens查当前 token 的 scope 名(比如keyword、support.type.object.console) - 在
settings.json里写editor.tokenColorCustomizations,只影响当前主题下的颜色 - 别直接抄网上泛泛的
keyword配置——不同语言的keywordscope 可能不同,JS 和 Python 的function不是一个 scope
要增强特定语言的高亮精度(比如 React、Vue、Python),装对应语言插件
VSCode 自带的语法高亮只是基础层,很多细节(如 JSX 属性、<script setup></script>、类型注解)需要语言专属插件补全。
- Vue 项目优先装
Volar(Vue 3)或Vetur(Vue 2),不是可选,是必要 - React 推荐
ES7+ React/Redux/React-Native snippets+JavaScript (ES6) code snippets,它们附带更细粒度的 token 分类 - Python 要装
Python官方插件(微软出品),否则async/await、类型提示等高亮会缺失
真正容易被忽略的是:高亮效果是分层叠加的——主题决定底色,语言插件提供 token 划分,tokenColorCustomizations 覆盖样式,而 highlight-words 这类插件是在最上层做临时标记。调错一层,结果就完全不对。











