terminal.integrated.background 是唯一可靠字段,用于让终端背景色与编辑器主题解耦,仅影响终端且只接受纯十六进制色码(如"#0d0d0d"),不支持rgba/rgb/命名色;OLED用户应避免#000000,推荐#0a0a0a等护眼深灰。

terminal.integrated.background 是唯一可靠字段
想让终端背景色和编辑器主题解耦,只改终端本身,必须用 terminal.integrated.background。它不继承主题,也不影响侧边栏、状态栏或编辑器——改了就只在终端生效。别碰 terminal.background(老字段,易被覆盖)或 editor.background(那是编辑器底色,改了全界面变)。
值只能是纯十六进制色码,例如 "#0d0d0d" 或 "#1e1e1e";不支持 rgba()、rgb() 或命名色。OLED 屏幕用户请避开 #000000,选 #0a0a0a 或 #121212 更护眼。
- 打开命令面板(
Ctrl+Shift+P或Cmd+Shift+P),输入并选择Preferences: Open Settings (JSON) - 在
{}内添加:"terminal.integrated.background": "#0d0d0d" - 保存后,新开终端(
Ctrl+Shift+`)立即生效;已打开的终端不会刷新,必须关闭重开
不同环境用不同颜色?靠工作区设置 + 插件协同
VSCode 原生不支持“按运行环境自动切换终端背景”,但你可以手动为每个工作区(比如 prod/、test/ 目录)配独立颜色。关键不是写死颜色,而是确保配置落在工作区级而非用户级。
检查右下角状态栏是否显示「工作区」字样——只有这时,.vscode/settings.json 里的 terminal.integrated.background 才真正生效。否则它会被用户设置覆盖,所有窗口都一样。
- 在项目根目录下建
.vscode/settings.json,写入:"terminal.integrated.background": "#2a1b1b"(生产环境偏酒红) - 另一个项目里写:
"terminal.integrated.background": "#1b2a1b"(测试环境偏墨绿) - 装插件
Peacock可同步改状态栏颜色,视觉上强化环境区分,且它会自动把颜色写进工作区配置 - 远程开发(SSH / Dev Container)时,确认
remote.extensionKind允许本地插件运行,否则 Peacock 不加载
透明度要单独配,别混在 background 里
terminal.integrated.background 本身不支持透明,透明效果由独立字段 terminal.integrated.backgroundOpacity 控制。它是叠加在纯色背景上的蒙版层,范围 0(全透)到 1(不透)。
设太低(如 0.3)会透出编辑器背景,导致文字边缘发虚、焦点难辨;Windows 用户若遇闪烁,建议设 0.92 或干脆不用透明度,直接用深色纯背景更稳。
- 配合深色背景使用,例如:
"terminal.integrated.background": "#0d0d0d"+"terminal.integrated.backgroundOpacity": 0.85 - 该字段在旧版 VSCode(
1.79及更早)可能无效,运行code --version确认版本 ≥1.80 - macOS 和 Linux(Wayland)下渲染最准;X11 下可能略灰;Windows ConPTY 对透明支持稍弱
为什么改了没反应?优先查这三处
终端背景不生效,90% 不是配错了,而是被更高优先级或底层逻辑劫持了。
- 检查
.vscode/settings.json是否存在同名项——它优先级高于用户设置,会直接覆盖 - PowerShell 用户运行
$Host.UI.RawUI.BackgroundColor,如果返回非空值,说明 Shell 层硬编码覆盖了 VSCode 设置;可加$Host.UI.RawUI.BackgroundColor = "Black"到Microsoft.PowerShell_profile.ps1中修复 - zsh/oh-my-zsh 用户若提示符颜色异常,大概率是插件(如
powerlevel10k)硬编码了 ANSI 色号,此时需同步调terminal.ansiBrightBlue等对应项,而非只动 background
真正容易被忽略的是:终端颜色是否生效,卡在 Shell 层。比如 PowerShell 没开 $PSStyle.OutputRendering = 'Ansi',或 zsh 没设 TERM=xterm-256color,就算配全 16 种 terminal.ansi* 也白搭。


















