vscode终端字体和配色必须通过settings.json配置:terminal.integrated.fontfamily、fontsize、fontligatures、lineheight及workbench.colorcustomizations中的ansi色系,改完需关闭并重建终端页才生效。

VSCode集成终端的字体和配色不能靠改 shell 配置(比如 .zshrc)或换系统主题生效,必须动 settings.json 里的特定字段——改错位置,改了也白改。
terminal.integrated.fontFamily 和 fontSize 必须单独设
编辑器字体(editor.fontFamily)和终端字体完全无关。哪怕你把编辑器设成 'JetBrains Mono',终端还是用默认等宽字体,中文可能发虚、连字不生效。
-
terminal.integrated.fontFamily要显式填写,推荐写法:'JetBrains Mono', 'PingFang SC', 'monospace'(macOS)或'JetBrains Mono', 'Microsoft YaHei', 'monospace'(Windows) -
terminal.integrated.fontSize建议比编辑器大 1–2px,比如编辑器是 12,终端设 14 - 想开连字?加一行
"terminal.integrated.fontLigatures": true,但前提是字体本身支持(Fira Code、JetBrains Mono可以,系统默认Consolas不行) - 行高别忽略:
"terminal.integrated.lineHeight": 1.3,否则文字挤在一起,光标容易遮挡字符
workbench.colorCustomizations 是唯一能改终端颜色的地方
很多人去改 ~/.Xresources 或 TERM 环境变量,结果 VSCode 终端里 ls 还是灰的——因为 VSCode 根本不读这些。它只认 workbench.colorCustomizations 里定义的 16 色 ANSI 映射。
- 背景色和文字色:用
"terminal.background"和"terminal.foreground",值必须是十六进制(如"#0d1117")、RGB("rgb(13, 17, 23)")或命名色("black"),rgba()会失效 - 命令输出颜色(比如
git status的红/绿)取决于"terminal.ansiGreen"、"terminal.ansiRed"等共 16 个键:0–7 是基础色,8–15 是亮色(ansiBrightGreen),exa、bat这类工具默认用亮色,漏配就等于没配 - 光标颜色要分开设:
"terminalCursor.background"和"terminalCursor.foreground",不然反色光标在深色背景下可能看不见
改完设置必须关闭并重建终端页
VSCode 终端不支持热更新字体或颜色。改完 settings.json 后,直接关掉所有终端标签页(不是关窗口),再按 Ctrl+`(或 Cmd+`)新开一个——这是唯一生效方式。reload window 或重启 VSCode 都没必要,也解决不了问题。
- 如果用了自定义 profile(比如通过
terminal.integrated.profiles.osx指定 zsh),而你的.zshrc里又调了tmux或oh-my-zsh的字体配置,它们可能覆盖 VSCode 设置,优先检查这部分 - 某些扩展(如 Terminal Themes)会注入自己的
terminal.integrated.colors,和workbench.colorCustomizations冲突,建议先禁用再调试
最容易被忽略的是 ANSI 亮色(ansiBright*)和终端重建动作——配色看着对了,但 ls --color 还是灰的,八成是漏了 ansiBrightGreen;改完字体却没变化,大概率是没关终端页重开。











