直接修改 editor.selectionBackground 即可,但需确保未被第三方主题或插件覆盖,且配置格式正确、位置正确,并建议同步设置 editor.inactiveSelectionBackground 以保持焦点切换时样式一致。

直接改 editor.selectionBackground 就行,别碰主题文件、workbench.colorCustomizations 或插件 CSS —— 它不归那儿管,改了也白改。
为什么改了 editor.selectionBackground 没反应
不是配置写错了,而是被更高优先级的东西盖住了:
- 第三方主题(如 One Dark Pro、Nord)在
package.json的tokenColors里硬编码了这个值,比settings.json优先级还高 → 临时切回Default Dark+测试,颜色正常就是主题问题 - 插件劫持渲染:比如
Bracket Pair Colorizer或Highlight Matching Tag直接重绘选区,绕过 VSCode 原生逻辑 → 关掉插件再试 - 用了 Remote-SSH / WSL,但只改了本地
settings.json→ 看右下角有没有「Remote」字样,确保改的是远程窗口的配置 - 误配成
editor.selectionHighlightBackground(语义高亮)或editor.findMatchBackground(搜索匹配),它们和鼠标拖选完全无关
editor.selectionBackground 的值怎么写才生效
必须同时满足三个条件:
- 写在用户级或工作区级的
settings.json根对象里(UI 设置面板搜不到这个字段) - 颜色格式合法:
"#264f78"或"rgba(38, 79, 120, 0.5)"都行;不支持rgb()、命名色(如"red")、带空格或大小写错误的写法 - 推荐用
rgba()并控制 alpha 在 0.3–0.6 之间——纯色容易盖住括号匹配、字符串引号等叠加高亮
要不要顺手配 editor.inactiveSelectionBackground
要。它和 editor.selectionBackground 是两个独立通道:
-
editor.inactiveSelectionBackground控制编辑器失去焦点时(比如你点了终端或浏览器)已选中文本的背景色 - 不设它,焦点丢失后选中块会回落到主题默认色,很可能和你的预期不一致
- 建议比
editor.selectionBackground稍暗或稍透明一点,例如"#1e3a5f"或"rgba(30, 58, 95, 0.4)",能清晰区分当前操作位置 - 只设
inactive不设selectionBackground,焦点状态下不会生效
真正麻烦的是主题作者把 editor.selectionBackground 写死在 tokenColors 里——这时候改 settings.json 无效,得去翻主题源码或换主题。大多数人卡在这一步,不是不会配,而是不知道该往哪查。











