VSCode中文显示行高字距不均的根本原因是editor.lineHeight和editor.letterSpacing被主题、工作区或单位混用覆盖;需显式设整数行高(如24)、禁用连字、重载窗口,并单独配置终端、文件树等组件行距。

中文显示行高和字距调不匀,根本不是“中文字体专属问题”,而是 editor.lineHeight 和 editor.letterSpacing 两个配置被连字、主题、工作区设置或单位混用悄悄覆盖了。
editor.lineHeight 设成整数才稳,别信“自动”
VSCode 默认 editor.lineHeight 是 0,意思是“让字体自己算”,但中文字体常靠 fallback 字体撑高度,结果就是「下」字钩子贴着下一行、「。」标点被截半。必须显式设整数像素值:
- 字号 14 → 推荐
"editor.lineHeight": 24(等宽字体如 JetBrains Mono 下最平衡) - 用了 Nerd Fonts 或高 DPI 屏 → 往上加到 26~28,否则 descender 溢出
- 设
24.5或1.4都会失效:前者被截断为 24,后者在中文场景下因 fallback 渲染不可控 - 检查是否被主题硬覆盖:某些中文主题在
package.json里写死"editor.lineHeight": 0,你得在用户settings.json里重写才能压过它 - 务必关掉
editor.fontLigatures:Fira Code / Cascadia Code 开连字后基线偏移,行高计算直接失准
editor.letterSpacing 改了没反应?先 reload window
editor.letterSpacing 加的是字符间水平增量,不是字体 kerning,对中文效果有限,但能缓解全角标点粘连。常见卡点:
- 值为
0.3在 Fira Code 下可见,在微软雅黑或系统默认字体下几乎无感 - 改完不会实时刷新:必须执行
Developer: Reload Window(Ctrl+Shift+P 输入后回车),否则编辑器缓存样式不更新 - 工作区设置优先级更高:如果项目根目录有
.vscode/settings.json且含"editor.letterSpacing": 0,你全局设成0.5也无效 - 别指望它修中文标点错位——那是
terminal.integrated.fontFamily或字体 fallback 链的问题,不是字间距的事
终端、文件树、语言专属行距都得单独配
很多人只调 editor.lineHeight,结果终端日志糊成一片、文件树折叠箭头和文字粘连——它们根本不共用这个配置:
- 集成终端行高:
terminal.integrated.lineHeight,只接受小数(如1.2),填像素值(如24)完全无效;改完要关闭当前终端再按 Ctrl+` 重开 - 文件树缩进:
workbench.tree.indent,单位像素,默认 8 太紧凑,中文路径建议设18~20;同时确认explorer.compactFolders为false,否则缩进白设 - Markdown 长文本阅读:
"[markdown]": { "editor.lineHeight": 30 },语言专属设置优先级高于全局,不影响代码区
真正容易被忽略的,是行高和字距必须和字体度量匹配——不是“越大越舒服”,而是要给中文全角字符、标点、fallback 字体的 ascender/descender 留出确定的像素余量。一旦开了连字、混用单位、或让主题接管控制权,所有调整都会悄无声息地失效。


















