直接改editor.selectionbackground即可,它是控制鼠标拖选、双击或快捷键选中代码块的唯一有效配置项;需在settings.json中以十六进制(如"#264f78")或rgba(如"rgba(38, 79, 120, 0.5)")格式设置,alpha建议0.3–0.6,保存即生效。

直接改 editor.selectionBackground 就行,这是控制你鼠标拖选、双击或快捷键选中代码块时的唯一有效配置项。别碰主题色或 workbench.colorCustomizations 里的同名字段——它们不生效。
怎么在 settings.json 里正确设置 editor.selectionBackground
打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P),搜 Preferences: Open Settings (JSON),在花括号内加一行:
"editor.selectionBackground": "#ff6b6b"
- 值必须是十六进制(如
#264f78)或 rgba 字符串(如rgba(38, 79, 120, 0.5));命名色(red)、rgb() 不支持 - 推荐用 rgba 控制透明度,alpha 值设在 0.3–0.6 之间,避免盖住语法高亮和括号匹配色
- 改完保存即生效,不用重启 VSCode,但若用了 Remote-SSH,得确认改的是远程窗口的
settings.json
为什么改了颜色却没变?常见覆盖源
不是你写错了,而是别的地方强行接管了样式:
- 某些插件(如
Bracket Pair Colorizer、Highlight Matching Tag)会重绘选区 DOM,关掉插件再试 - 第三方主题(如
One Dark Pro、Nord)在tokenColors里硬编码了editor.selectionBackground,优先级高于 settings.json;临时切回Default Dark+测试即可验证 - 误启用了
editor.selectionHighlight(注意没有Background后缀),它控制的是“相同词语义高亮”,视觉上容易混淆,但和你拖选的区域完全无关
editor.selectionBackground 和 editor.inactiveSelectionBackground 的关系
前者只管当前有焦点的编辑器,后者管你切到终端、侧边栏后,已选中文本的“退色”状态:
- 两个必须**分别设置**,不设
editor.selectionBackground时,editor.inactiveSelectionBackground不会生效 - 典型搭配:
"editor.selectionBackground": "#264f78"+"editor.inactiveSelectionBackground": "#1e3a5f"(稍暗一点,区分焦点状态) - 终端面板(Terminal)里的选中文本由
terminal.selectionBackground单独控制,不能复用上面两个
真正卡住人的地方不是不会写 JSON,而是主题作者把 editor.selectionBackground 写死在 package.json 的 tokenColors 里——这时候要么翻主题源码提 PR,要么换一个更开放的主题。多数人停在这一步,不是配置不会,是不知道该去哪改。











