highlight-words 是解决“手动高亮当前选中词”的必选项,因 vs code 原生不支持该功能,而 color highlight 和 bracket pair colorizer 功能不匹配;它跨语言支持全词匹配与正则高亮,需配置 colors、defaultmode 和 box 等三项 settings.json 参数,并手动绑定快捷键。

highlight-words 是唯一能真正解决“手动高亮当前选中词”需求的插件,其他如 Color Highlight 或 Bracket Pair Colorizer 都不匹配这个场景。
为什么 highlight-words 不是可选项而是必选项
VS Code 原生不支持“选中即高亮”的行为——它只做语法高亮、括号配对或颜色值渲染。Color Highlight 只识别 #ff6b6b、rgb(255, 107, 107) 这类颜色字面量;Bracket Pair Colorizer 只管 {}、[]、() 的嵌套配对。而 highlight-words 的设计目标就是:你选中一个变量名、函数名或关键字,按快捷键,它就在当前编辑器里把所有匹配项用背景色标出来。
- 跨语言生效:JS/TS/Vue/HTML/C/C++ 全部支持,不依赖 language server
- 支持全词匹配(避免选中
map却高亮flatMap) - 支持正则模式(比如
console\.log\([^)]*\)一键高亮所有调用) - 高亮结果带背景 + 可选边框,视觉上不会被忽略
highlight-words 必须配置的三项 settings.json 参数
装完插件不配置等于没装。必须在 settings.json 中显式写入以下字段(不是 UI 设置面板):
{
"highlightwords.colors": [
{"light": "#b3d9ff", "dark": "#4a90e2"},
{"light": "#e6ffb3", "dark": "#7ed321"}
],
"highlightwords.defaultMode": 3,
"highlightwords.box": {"light": true, "dark": false},
"highlightwords.showSidebar": false
}
-
highlightwords.colors至少要 2 组颜色,少于 2 组会导致高亮完全不显示(插件内部有校验) -
highlightwords.defaultMode: 3表示“全词 + 忽略大小写”,这是最安全的默认值;设成 0 或 1 容易误匹配子串 -
highlightwords.box.dark: false是深色主题下关键:设为true时边框会和背景融合,看起来像没高亮 -
highlightwords.showSidebar: false推荐关闭,否则左侧多出 HIGHLIGHTS 栏,干扰文件导航
快捷键绑定失败的常见原因和调试方法
插件默认无快捷键,必须手动绑定。常见问题不是“没反应”,而是快捷键被劫持或未生效:
- 打开快捷键设置:
Ctrl+K Ctrl+S→ 搜索Highlight Toggle Current→ 双击右侧空白处绑定,推荐Ctrl+Shift+H - 如果绑定后仍无效,检查是否被
Auto Rename Tag或Prettier占用(它们常抢占Ctrl+Shift+X类组合) - 高亮后光标移走就消失?这是正常行为 ——
highlight-words默认只作用于当前编辑器,不跨编辑器持久化
容易被忽略的细节:高亮范围与性能边界
很多人以为高亮是全局的,其实它默认只扫描当前打开的编辑器文件。如果你在 10 个 tab 里都打开了同一份代码,每个 tab 要单独触发一次高亮。跨文件高亮需要开启 highlightwords.global(但会明显拖慢响应速度,尤其大项目)。
- 不要在
node_modules或大型日志文件里用高亮,插件会逐行扫描,卡顿明显 - 正则模式开启后,
highlightwords.defaultMode会失效,需改用highlightwords.regexMode控制 - 颜色数组越长,切换高亮色越方便,但超过 8 组后视觉区分度下降,实际用 2–4 组足够











