VSCode默认颜色方案由workbench.colorTheme和editor.tokenColorScheme共同决定;仅改其一会导致UI与代码区颜色割裂,需同步配置二者才能实现真正深/浅色切换。

VSCode 默认颜色方案不是单个开关,而是由 workbench.colorTheme 和 editor.tokenColorScheme 两个独立配置共同决定的;只改其中一个,大概率出现“边栏黑、代码白”或“标题栏亮、终端发灰”的割裂感。
用命令面板切主题最稳,别依赖 Ctrl+K Ctrl+T
快捷键 Ctrl+K Ctrl+T(Windows/Linux)或 Cmd+K Cmd+T(macOS)容易失效,常见原因包括:焦点不在主窗口、被插件拦截、外接键盘键序错乱。更可靠的做法是:
- 按
Ctrl+Shift+P(或Cmd+Shift+P),输入Preferences: Color Theme,回车 - 在弹出列表里选带
(default dark)或(default light)后缀的主题,比如Dark+ (default dark) - 确认选择后立即生效,无需重启
代码区还是亮/还是暗?必须手动配 editor.tokenColorScheme
命令面板只改 workbench.colorTheme(UI 区域),不碰代码语法色。如果你选了深色 UI 主题但编辑器里文字背景仍是白的,说明 editor.tokenColorScheme 还卡在默认亮色上。
- 打开设置 JSON:
Ctrl+,→ 右上角点击「打开设置 (JSON)」图标 - 加入这行(注意逗号位置):
"editor.tokenColorScheme": "Default Dark+" - 第三方主题如 One Dark Pro 通常自动绑定,但 Material Theme、Nord 等需手动开启,否则代码区永远“掉队”
- 值必须严格匹配主题 ID,
"default dark"或"dark+"都会失败,正确写法是"Default Dark+"
想微调某个区域背景色?别装插件,直接改 workbench.colorCustomizations
很多人搜“VSCode 修改背景色”却找不到入口,是因为 VSCode 没有全局“背景色”设置项——所有 UI 色都由主题控制,而局部覆盖靠的是 workbench.colorCustomizations。
- 它管的是侧边栏、状态栏、标签页、活动栏等——不是代码里的字符串或关键字
- 在
settings.json中添加对象,例如:"workbench.colorCustomizations": { "sideBar.background": "#1e1e1e", "statusBar.background": "#007acc" } - 键名大小写敏感:
activityBar.foreground有效,activitybar.foreground无效 - 值支持十六进制、
rgba(),甚至可引用变量如"editor.background",但不能写 CSS 类或注释
真正麻烦的从来不是换主题,而是搞清哪块颜色归哪个配置管。UI 色和语法色完全隔离,改错地方就等于没改;而工作区级 .vscode/settings.json 会静默覆盖用户级设置,这点最容易被忽略。


















