vscode 默认“dark+”主题为#1e1e1e深灰而非纯黑,需在settings.json的workbench.colorcustomizations中同时覆盖editor.background、sidebar.background、activitybar.background、statusbar.background、panel.background、titlebar.activebackground共6项为#000000才能实现真正纯黑。

VSCode 默认的 “Dark+” 不是纯黑,而是 #1E1E1E 深灰;想真正变黑,必须手动覆盖至少 6 个区域的颜色值,只改 editor.background 是没用的。
怎么快速启用深色编辑器主题(不等于纯黑)
快捷键 Ctrl+K Ctrl+T(Windows/Linux)或 Cmd+K Cmd+T(macOS)直接呼出主题选择面板,选带 “Dark” 的主题(如 Dark+ (default dark)、GitHub Dark Default)即可生效。这一步只改编辑器代码区和侧边栏等 UI 元素的配色,不涉及语法高亮逻辑。
常见错误现象:
- 按了快捷键没反应 → 焦点在编辑器内(光标在代码里闪烁),先按
Esc退出插入模式再试 - 选了 Dark 主题但终端/调试控制台还是白的 → 它们用独立主题,需额外配置
terminal.integrated.defaultProfile或启用workbench.colorCustomizations覆盖terminal.background
为什么改了 editor.background 还不是纯黑
VSCode 的 UI 由多个独立区域组成,每个区域有自己颜色配置项。只设 "editor.background":"#000000" 只影响代码编辑区,其余区域仍用默认深灰(#1E1E1E),导致视觉割裂、OLED 屏幕仍有残余发光。
必须同时覆盖以下 6 项才能实现真正统一纯黑:
-
"editor.background":"#000000"(编辑区) -
"sideBar.background":"#000000"(资源管理器、搜索、调试等侧边栏) -
"activityBar.background":"#000000"(左侧图标栏) -
"statusBar.background":"#000000"(底部状态栏) -
"panel.background":"#000000"(终端、调试控制台等底部面板) -
"titleBar.activeBackground":"#000000"(顶部标题栏,Windows/macOS 生效)
这些要写进 settings.json 的 workbench.colorCustomizations 对象里,且不能漏掉外层大括号和引号 —— 少一个标点就会让整个设置失效。
语法高亮和字体在纯黑下容易翻车
背景一黑,原本在深灰上还 OK 的高亮色(比如纯白 "#FFFFFF" 字符串、亮青 "#569CD6" 括号)会立刻刺眼,反而加重疲劳。
建议同步调整:
- 禁用高对比插件:像
Bracket Pair Colorizer这类用高饱和色标括号的插件,在纯黑背景下极易眩光,建议关掉或换用Highlight Matching Tag这类低饱和方案 - 调低字体抗锯齿:在
settings.json加"editor.fontLigatures": false和"editor.smoothScrolling": false,避免黑底上字体边缘发虚 - 检查
editor.tokenColorCustomizations:如果用了第三方主题(如One Dark Pro),它可能自带浅色高亮,此时需手动覆盖部分 token 颜色,例如把字符串设为"#A6E22E"而非"#FFFFFF"
别碰主题文件本身,优先用 settings.json 覆盖
有人会去改 dark_plus.json 文件路径下的原始主题定义,这极不推荐 —— VSCode 升级后会被覆盖,且不同系统路径不一致(Windows 在 C:\Program Files\Microsoft VS Code\...,macOS 在 /Applications/Visual Studio Code.app/...)。
正确做法是打开命令面板 Ctrl+Shift+P → 输入 Preferences: Open User Settings (JSON) → 在用户级 settings.json 中添加 workbench.colorCustomizations 块。这样既持久,又不会被更新破坏。
注意:workbench.colorCustomizations 里如果没指定主题名(如 "[Default Dark+]": { ... }),则配置会作用于所有主题;若只想对当前主题生效,务必套一层中括号加引号的主题 ID。











