直接修改 editor.selectionbackground 即可控制鼠标拖选、双击选中时的背景色,需在 settings.json 中添加该字段并设为十六进制、rgb() 或 rgba() 值,保存即生效;注意避免被主题或插件覆盖,且需区分 editor.inactiveselectionbackground 等易混淆配置。

直接改 editor.selectionBackground 就行,这是控制你鼠标拖选、双击选中时那块背景色的唯一有效配置项。别去动主题设置或 workbench.colorCustomizations 里同名字段——它们不生效。
怎么改 editor.selectionBackground 颜色
打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),输入 Preferences: Open Settings (JSON) 回车,在花括号内加一行:
"editor.selectionBackground": "#ff6b6b"
- 颜色值支持十六进制(如
#264f78)、rgb()、rgba();用rgba(255, 107, 107, 0.6)可控透明度,避免盖住括号配对或语法高亮 - 改完保存即生效,不用重启窗口
- 如果用了 Remote-SSH/WSL,确保改的是远程环境下的
settings.json(右下角显示Remote字样时再开设置)
为什么改了没反应?常见覆盖源
最常踩的坑是其他地方强行覆盖了这个值:
- 某些主题(如
One Dark Pro、Nord)在 tokenColors 里硬编码了editor.selectionBackground,优先级高于用户配置;临时切回Default Dark+测试可快速验证 - 插件如
Bracket Pair Colorizer或Highlight Matching Tag会劫持选区渲染逻辑;关掉插件再试 - 误把配置写进了
workbench.colorCustomizations,但没套在editor对象下,例如写成"editor.selectionBackground"是错的,正确结构必须是:"workbench.colorCustomizations": { "editor.selectionBackground": "#..." }——但其实没必要绕这么远,直接写顶层editor.selectionBackground更稳
editor.selectionBackground 和 editor.inactiveSelectionBackground 的关系
前者管“当前焦点编辑器里你选中的内容”,后者管“你切到终端或侧边栏后,编辑器里那段已选中文本变淡后的颜色”:
- 两者必须分别设置;只设
inactive不设selectionBackground,焦点态会回落到主题默认色 - 推荐搭配:主色用
"#264f78",非焦点色用稍暗带透明的"#1e3a5f40",一眼区分操作状态 - 终端面板里的选中色由独立配置
terminal.selectionBackground控制,不能复用
别和这几个配置搞混
名字像,但完全不是一回事:
-
editor.selectionHighlightBackground:控制“光标停在变量上时,其他同名变量的淡色背景”,不是你拖出来的选区 -
editor.wordHighlightBackground:控制“你双击选中一个词后,全文所有匹配位置的背景”,和selectionBackground触发条件、作用范围都不同 -
editor.lineHighlightBackground:那是整行高亮,靠workbench.colorCustomizations+editor.renderLineHighlight配合,和选中文本无关
真正动手改的时候,只盯住 editor.selectionBackground 这一个键,其他全关掉或设为透明,才能看清效果是否真被你控制住了。











