vscode中文排版不整齐的根本原因是editor.fontfamily字体链顺序错误:西文字体必须前置、等宽中文字体紧随其后、monospace保底,且字体名须与系统注册全名完全一致,配置后需彻底退出进程重启。

editor.fontFamily 字体链顺序写错,中文一定糊
VSCode 渲染中文不是“有没有中文字体”,而是“字体链里有没有能兜底的等宽中文字体”,且必须排在西文字体之后。如果把 Microsoft YaHei 放最前,所有字符(包括英文)都会走它——英文失去连字、等宽失效、标点发虚;如果漏掉中文字体,中文就 fallback 到系统默认(常为空白或极细宋体)。
正确写法示例(西文优先、中文兜底、含等宽变体):
"editor.fontFamily": "'Fira Code', 'JetBrains Mono', 'Microsoft YaHei Mono', 'PingFang SC', 'Noto Sans CJK SC', 'monospace'"
-
Microsoft YaHei要写成Microsoft YaHei Mono(Windows 等宽变体),否则中文显示正常但英文不等宽 - macOS 用户慎用
Heiti SC,PingFang SC对中文标点渲染更稳;SF Mono必须放在中文字体前,否则{}符号会变细 - Linux 用户需确认已安装
fonts-wqy-zenhei或noto-fonts-cjk,DejaVu Sans不覆盖全部汉字 - 填完必须完全退出 VS Code 进程(Windows 杀
Code.exe,macOS 用 Activity Monitor 查Electron),仅关闭窗口不生效
terminal.integrated.fontFamily 必须单独配,和编辑器无关
集成终端(Ctrl+`)用的是独立字体配置项,editor.fontFamily 对它完全无效。即使代码里中文清晰,终端里仍可能显示方块、换行错位或路径乱码。
实操建议:
- 把
terminal.integrated.fontFamily设为和editor.fontFamily完全一致的值(推荐) - Windows 终端若仍乱码,检查系统区域设置是否为「中文(简体,中国)」;Linux/macOS 运行
locale,确保输出含LANG=zh_CN.UTF-8 - 避免用
SimSun:它不是等宽字体,会导致终端中文列对不齐;改用Microsoft YaHei Mono或Noto Sans CJK SC
字体名写错一个字,整条链就跳过它
VSCode 认的是系统注册的**字体全名**(Font Full Name),不是文件名或显示名。比如你双击安装了“思源黑体”,系统里注册的可能是 Source Han Sans CN Regular(Windows)或 Source Han Sans CN Normal(macOS)。填成 SourceHanSansCN 或 Source Han Sans 都会失效。
验证方法:
- Windows:打开「设置 → 蓝牙和其他设备 → 字体」,搜索字体名看是否列出
- macOS:打开「字体册」→ 找到字体 → 右下角「信息」面板里看「全名」字段
- Linux:终端运行
fc-list :family,筛选含中文的行 - 别用带空格或括号的字体名(如
Microsoft YaHei (TrueType)),只取标准全名
debug.console.fontFamily 也要设,否则调试输出是方块
调试控制台(Debug Console)不走 editor.fontFamily,也不走 terminal.integrated.fontFamily,它有自己的配置项 debug.console.fontFamily。如果你在断点里 console.log('用户登录'),结果看到一堆 ,大概率就是这个没配。
操作很简单:
- 在 settings.json 中加一行:
"debug.console.fontFamily": "'Fira Code', 'Microsoft YaHei Mono', 'PingFang SC', 'monospace'" - 该配置项无需重启,保存后下次打开 Debug Console 即生效
- 注意:它不影响 Output 面板(如 ESLint 日志),Output 面板乱码是 Node.js 进程编码问题,得靠系统级
NODE_OPTIONS=--experimental-utf8











