直接修改 editor.wordhighlightbackground 和 editor.wordhighlightstrongbackground 即可实现选中单词后全文匹配高亮,二者分别控制非焦点和焦点状态下的背景色,需在 settings.json 中显式设置且带 alpha 透明度(如 #5a5a5a33),同时确保 "editor.selectionhighlight": true 已启用,并确认语言模式非 plain text、主题未覆盖该配置。

直接改 editor.wordHighlightBackground 和 editor.wordHighlightStrongBackground 就行,别碰 editor.selectionHighlightBackground —— 那个只管光标停在词上时的语义高亮,不是你双击选中后要的效果。
选中一个词后,其他同名位置不亮?先确认这两个配置项
VSCode 默认“选中单词即高亮全文匹配”是开启的,但很多主题(比如 One Dark Pro、Nord)会把 editor.wordHighlightStrongBackground 设为 transparent,导致你明明选中了 userName,页面却毫无反应。
- 必须手动在
settings.json里补全这两项(哪怕主题已设,也要显式覆盖):"editor.wordHighlightBackground": "#5a5a5a33",<br>"editor.wordHighlightStrongBackground": "#5a5a5a55"
- 颜色值带
33/55是十六进制 alpha,保证半透——太实会盖住括号、引号;太虚又看不见 - 确保
"editor.selectionHighlight": true已启用(这是触发基础高亮的总开关) - 如果右下角语言标识是
Plain Text,高亮大概率失效:点它,选对应语言(如JavaScript),否则分词逻辑不启动
为什么改了 editor.selectionHighlightBackground 没用?它根本不管“选中”
这个配置项名字有迷惑性:editor.selectionHighlightBackground 只控制「光标悬停在某个变量上」时自动出现的淡色高亮(需同时开启 editor.occurrencesHighlight),和你鼠标双击/拖选后触发的高亮完全无关。
- 你想要的“选中即全局标出”,真正起作用的是
editor.wordHighlightBackground(非焦点状态)和editor.wordHighlightStrongBackground(当前选中态) - 搜设置时别被 UI 里“Selection Highlight”字样带偏,那个开关只是打开/关闭整套机制,不控制颜色
- 第三方主题常把
wordHighlightStrongBackground绑定到动态 token rule,优先级高于用户设置——临时切回Default Dark+测试,能生效就说明是主题冲突
搜索匹配高亮颜色怎么单独调?别混进同一组配置
搜索结果(Ctrl+F 弹窗里或编辑器内高亮块)的颜色由另一套机制控制,和单词高亮互不干扰。改错地方,一个字都不会变。
- 必须写在
workbench.colorCustomizations对象里,不能直接塞进 settings 根层级:"workbench.colorCustomizations": {<br> "editor.findMatchBackground": "#ffeb3b",<br> "editor.findMatchHighlightBackground": "#ffeb3b44"<br>} -
editor.findMatchBackground控制当前聚焦的搜索结果(最亮的那个);editor.findMatchHighlightBackground控制其余所有匹配项(默认很淡) - 颜色值只认
#rrggbb或#rrggbbaa,不支持rgb()、变量或!important - 插件如
Highlight Matching Tag有时会劫持高亮渲染,禁用后测试可快速排除干扰
真正容易被忽略的是语言模式和主题的双重覆盖:哪怕你把四个高亮配置都写对了,只要右下角显示的是 Plain Text 或当前主题硬编码了 wordHighlightStrongBackground,效果就出不来。先切语言、再换主题验证,比反复改 JSON 更省时间。











