highlight-words 是唯一能真正解决「手动高亮任意词/正则片段」需求的插件,因它支持跨文件、全词/正则/忽略大小写匹配,不依赖语法解析,而 Bracket Pair Colorizer 和 Color Highlight 功能完全不匹配该目标。

直接说结论:highlight-words 是唯一能真正解决「手动高亮任意词/正则片段」需求的插件,Bracket Pair Colorizer 和 Color Highlight 都不匹配这个目标。
为什么 highlight-words 是刚需而非可选
当你在调试一个大型 C++ 项目,想快速定位所有对 g_uart_handle 的读写操作;或在 Vue 模板里高亮全部 v-if 指令;又或者想临时标出所有未处理的 TODO 注释——这些都不是语法高亮范畴,而是「语义级人工标记」。VSCode 自身不提供这类功能,highlight-words 填补了这个空白。
它不依赖语言服务、不解析 AST、不绑定语法范围,只做一件事:你选中什么,就高亮什么(支持全词、忽略大小写、正则),且跨文件生效。
-
Color Highlight只识别颜色字面量(如#3498db、rgba(0,0,0,0.5)),无法响应普通变量名 -
Bracket Pair Colorizer专用于括号配对,对关键词、函数调用、状态字段完全无感 - 内置的
editor.occurrencesHighlight仅限当前文件、仅限符号引用,且不可控颜色和样式
必须改的 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 组,否则高亮不渲染(插件内部有校验) -
highlightwords.defaultMode: 3= 全词匹配 + 忽略大小写,避免选中map却高亮flatMap或mapStateToProps -
highlightwords.box.dark: false是关键:深色主题下若设为true,边框会融进背景色,看起来像没高亮 -
showSidebar: false必关,否则左侧多出 HIGHLIGHTS 栏,干扰文件树导航
快捷键绑定与常见失效原因
插件默认无快捷键,需手动绑定。最常用的是 Ctrl+Shift+H(Windows/Linux)或 Cmd+Shift+H(macOS)。
- 打开快捷键设置:
Ctrl+K Ctrl+S→ 搜索Highlight Toggle Current→ 双击右侧绑定 - 若绑定后无效,优先检查是否被
Auto Rename Tag或Prettier占用(它们常劫持Ctrl+Shift+X类组合) - 高亮后光标移走就消失?正常行为——
highlight-words默认只作用于当前编辑器,不跨编辑器持久化;如需全局保持,得配合highlight-words.workspace扩展模式(需额外配置) - 高亮不跨文件?确认已启用
"highlightwords.workspace": true(默认关闭)
正则高亮的实用边界
highlight-words 支持正则,但不是完整 JS RegExp 引擎,部分特性受限。
- 可用:
\bconsole\.log\b(精确匹配调用)、TODO|FIXME|XXX(多关键词)、data-[a-z-]+(HTML 自定义属性) - 慎用:
(?i)http(忽略大小写标志在某些版本不生效)、\d{3}-\d{2}-\d{4}(数字匹配可能误触变量名中的数字) - 不能用:
/(?(后行断言)、<code>console\.log\([^)]*\)(嵌套括号匹配,插件不解析括号层级) - 正则模式需在命令面板中显式选择:
Ctrl+Shift+P→Highlight: Toggle Current (Regex)
真正难的不是配置,而是判断哪些场景该用高亮、哪些该用搜索或符号引用。比如追踪变量生命周期,highlight-words 是起点,但最终得靠 F12 跳转 + Ctrl+Shift+O 符号搜索收尾。高亮只是视觉锚点,不是逻辑替代品。


















