最稳方案是直接配置terminal.integrated.colorScheme(如"dark-plus"),无需手动设置16个ANSI色;内置终端主题已优化对比度与语义色,修改后需关闭并重新打开终端生效。

直接改 terminal.integrated.colorScheme 就行,不用动 16 色 ANSI 表——这是最稳、最省事的方案。
优先用内置终端主题,别手写 16 行颜色
VSCode 自带的终端主题(如dark-plus、Solarized Dark、GitHub Dark Dimmed)已经调好对比度和语义色,比自己瞎配靠谱得多。
- 打开设置(Ctrl+, ),搜 terminal integrated theme,下拉选一个带 Dark 的即可
- 或直接往 settings.json 里加一行:
"terminal.integrated.colorScheme": "dark-plus"- 改完不用重载窗口,但得关掉现有终端再按
Ctrl+Shift+` 新开一个才生效
手写 terminal.integrated.colors 时必须配齐基础项
真要自定义,别只改 background 和 foreground,漏了关键色会导致命令输出不可读:
- background 和 foreground 是底色和主文字色,必须协调(比如 "#1e1e1e" + "#d4d4d4")
- cursor 和 selectionBackground 影响操作反馈,不设的话光标可能看不见、选区糊成一片
- black、white、brightBlack 这三个最常被 ls、git status、提示符调用,漏掉任一都会出现“部分文字突然变灰/变淡”
- 所有键必须平级写在 terminal.integrated.colors 对象里,嵌套或拼错名(比如写成 Bright_Black)全无效
Windows 用户小心 PowerShell 劫持背景色
即使settings.json 写对了,新开终端还是灰白底?大概率是 PowerShell 在捣鬼:
- 在终端里运行:echo $Host.UI.RawUI.BackgroundColor,如果返回不是 Black,就是它覆盖了 VSCode 设置
- 检查 $PROFILE 文件,删掉类似 $Host.UI.RawUI.BackgroundColor = "Gray" 的行
- 更彻底的解法:把 terminal.integrated.defaultProfile.windows 改成 pwsh 或 cmd,避开 PowerShell 启动逻辑
workbench.colorCustomizations 和 terminal.integrated.colors 别混用
这两个配置打架:
- workbench.colorCustomizations 下的 terminal.* 键(如 terminal.ansiGreen)优先级更高,但只管 ANSI 转义色,不管 cursor 或 selectionBackground
- terminal.integrated.colors 是终端专属配置,覆盖更全,且不和 UI 主题冲突
- 如果你同时写了两者,又没搞清覆盖范围,就会出现“ls 颜色对了,但光标消失”这类诡异现象
真正难的不是配色,而是记住哪些地方改了要重启终端、哪些改了要重载窗口、哪些改了压根不生效——尤其当终端颜色和编辑器主题看起来“差不多”,但实际走的是两套完全独立的渲染管线。


















