直接关闭editor.selectionHighlight即可取消双击或拖选后的全文匹配高亮
想彻底关掉VSCode里那个双击代码就自动高亮其他相同单词的功能吗?其实方法很简单,核心就一个:把 editor.selectionHighlight 这个设置关掉。它正是控制双击或拖拽选中文本后,全文匹配项高亮的总开关。

怎么快速定位并关闭这个设置
操作起来非常直观。打开VSCode的设置界面(快捷键是 Ctrl+, 或 Cmd+,),在顶部的搜索框里直接输入 selection highlight。很快你就能找到名为 Editor: Selection Highlight 的选项,取消它的勾选,问题就解决了。
这个操作对应的底层配置项就是 "editor.selectionHighlight": false。如果你习惯直接编辑配置文件,把它写进 settings.json 里效果完全一样。
这里有个小提示:搜索时注意别和 occurrencesHighlight 搞混了。后者控制的是光标悬停时的高亮,跟双击选中这个行为是两回事。
为什么关了还是有高亮?常见干扰项
有时候,明明关掉了设置,视觉上却好像还有高亮残留。别急,这通常是其他因素在“干扰”:
- 主题配色把戏:一些热门主题(比如
Nord、One Dark Pro)会把匹配高亮的颜色设置得非常淡,几乎和背景色融为一体,让你误以为功能没关掉。要验证的话,临时切换到VSCode内置的Dark+主题试试看,立马见分晓。 - 插件“抢戏”:像
Highlight Matching Tag、Bracket Pair Colorizer这类增强插件,有自己的一套高亮逻辑,可能会叠加效果。最直接的排查方法就是暂时禁用相关插件,看看问题是否消失。 - 语言被“接管”:如果你发现只在特定类型的文件(比如
.vue)里失效,那很可能是该语言的服务被某个专用插件(例如 Volar)接管了。这时候需要确认一下,这个插件自身有没有覆盖或忽略全局的selectionHighlight设置。
关掉之后,哪些功能不受影响
放心,关闭 editor.selectionHighlight 的影响范围非常精准,它只干掉「手动选中文本」后的那个全文匹配高亮。下面这些你常用的功能,会一切照旧:
Ctrl+F查找时的结果高亮(这是独立的查找机制)。- 语言服务器提供的所有智能导航,比如按
F12跳转到定义、用Shift+F12查找所有引用。 - 括号匹配的高亮(由另一个设置项
editor.matchBrackets控制)。 - 当前作用域内变量的重复使用提示(这归
editor.wordHighlightStrongBackground管,和 selectionHighlight 没关系)。
最后说一个容易让人困惑的点:这个匹配高亮并非简单的字符串匹配,它依赖语言服务的语义分析。所以,像 const、if 这类关键字,或者字符串字面量里的文本(比如 "user"),是永远不会被高亮的——这不是你的设置出了问题,而是VSCode特意这么设计的。
