vscode界面字体由系统ui字体控制,与editor.fontfamily无关;编辑器代码区需用等宽中文字体如'microsoft yahei'并配fallback,禁用unicodehighlight防方框,终端字体须单独配置terminal.integrated.fontfamily。

VSCode界面字体不是编辑器字体,别乱改editor.fontFamily
VSCode 的「界面」(菜单栏、侧边栏、设置面板、弹窗标题等)用的是系统 UI 字体,和编辑器里写代码的 editor.fontFamily 完全无关。你看到界面文字变成楷体,大概率是系统级字体替换或主题插件在起作用,不是 VSCode 自身配置项控制的。
常见诱因有三个:
- Windows 上装了第三方字体美化工具(比如“字体美化大师”“Win10/11 楷体替换包”),直接劫持了系统 UI 字体链;
- 安装了带 UI 字体重写功能的主题插件(例如某些“国风主题”“水墨主题”),它们会注入 CSS 覆盖默认样式;
- 手动修改过系统注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes,把MS Shell Dlg或MS Shell Dlg 2指向了楷体(如"楷体"或"KaiTi")。
这类改动不影响代码编辑区,但会让整个 VSCode 界面看起来像 Word 文档——尤其在缩放比例高或 DPI 非整数时,楷体渲染发虚、字间距异常明显。
想让编辑器内中文注释/变量名用楷体?不推荐
楷体不是等宽字体,editor.fontFamily 强制设为楷体会导致对齐错乱:缩进塌陷、括号不对齐、光标定位偏移,尤其在 Python 缩进或 JSON 格式化时肉眼可见。
如果你真要试,必须加 fallback 保底:
"editor.fontFamily": "'KaiTi', 'Microsoft YaHei', 'Consolas', monospace"
但注意:
-
KaiTi在 Windows 上可用,macOS/Linux 默认无此字体,会 fallback 到后置字体; - VSCode 1.64+ 的
editor.unicodeHighlight.nonBasicASCII若开启,中文仍会被框住——得关掉(见下一条); - 终端、调试控制台、输出面板完全不认这个设置,它们走的是独立的
terminal.integrated.fontFamily。
editor.unicodeHighlight 开启会导致中文变方框,和字体无关
这是最常被误判为“字体问题”的现象:注释里的中文显示为□□□,鼠标悬停提示 U+4F60 这类码点。这不是楷体惹的祸,而是 VSCode 默认启用 Unicode 高亮策略,把所有非 ASCII 字符当“可疑字符”处理。
关掉它只需三步(任选其一):
- 设置界面搜
editor.unicodeHighlight.invisibleCharacters→ 设为false; - 同样搜
editor.unicodeHighlight.nonBasicASCII→ 设为false; - 再搜
editor.unicodeHighlight.ambiguousCharacters→ 设为false。
改完立刻生效,不用重启。如果只关一项,方框可能还在——必须全关。
真正可控的中文字体美化路径
想兼顾可读性、对齐稳定性和中文显示质量,按场景分别配:
-
编辑器代码区:用等宽中文字体,如
'Cascadia Code', 'Microsoft YaHei', 'SimSun', monospace(Windows); -
集成终端:必须等宽 + 中文支持,
'Cascadia Code', 'Microsoft YaHei'是目前最稳组合; - 界面字体:别动。VSCode 不提供 UI 字体配置项,强行干预系统字体链风险高、维护难;
-
注释/字符串内中文:确保
files.encoding为utf8,且关掉上面三项unicodeHighlight。
楷体只适合截图展示、文档排版或极个别 UI 主题需求——把它塞进代码编辑器,等于主动放弃对齐精度和长期可维护性。











