VSCode行高由editor.lineHeight控制(整数像素值,推荐22~24),字间距由editor.letterSpacing控制(小数像素值,效果依赖字体);二者必须分开配置,且不可通过CSS或GUI滑块调整,需在settings.json中显式设置并避免被主题、连字或工作区配置覆盖。

VSCode 的代码行高和字间距必须分开配,且不能靠 CSS 或 GUI 滑块调 —— 行高靠 editor.lineHeight(像素整数),字间距靠 editor.letterSpacing(像素小数),设错值、开连字、被主题覆盖,都会白调。
editor.lineHeight 怎么设才生效
它控制的是「基线到基线」的垂直距离,单位是像素,不是倍数(除非你故意设小数,但不推荐)。默认值 0 表示自动计算,但结果受字体 ascender/descender、DPI、缩放影响极大,实际几乎不可控。
- 等宽字体(如
Fira Code、JetBrains Mono)下,22~24最常用;字号14时配24,字号16可试26~28 - 必须是整数:
22.5会被截断为22,视觉无变化 - 检查是否被主题覆盖:有些主题在
package.json里硬写"editor.lineHeight": 0,你得在用户settings.json里显式重写才能压过它 - 关掉
editor.fontLigatures:连字开启时,某些字体渲染会干扰行高计算,关掉立刻见效
editor.letterSpacing 调完没反应?先看这几点
它加的是字符间水平空白增量,不是字体 kerning,效果高度依赖等宽字体本身。设了不生效,大概率卡在这几个地方:
- 值为
0是默认无额外间距;0.3在Fira Code下明显,但在Segoe UI下几乎看不出 - 改完不会实时刷新:必须执行
Developer: Reload Window(Ctrl+Shift+P 输入后回车),否则编辑器缓存样式不更新 - 工作区设置优先级高于用户设置:如果项目根目录有
.vscode/settings.json且写了"editor.letterSpacing": 0,那全局设成0.5也无效 - 别指望它解决中文标点粘连:那是字体 fallback 链或
terminal.integrated.fontFamily配置问题,不是字间距的事
终端、文件树、语言专属行距要单独配
很多人调完 editor.lineHeight 发现终端还是挤,文件树还是糊,是因为它们根本不共用这个配置。
- 集成终端行高:用
terminal.integrated.lineHeight,只接受小数(如1.2),设像素值无效;改完需关闭再打开终端面板 - 文件树缩进:靠
workbench.tree.indent(单位像素),默认8,设成16~20后折叠箭头和文件名之间才有呼吸感 - 只给某语言宽松行距:比如 Markdown 预览太密,在
settings.json里加"[markdown]": { "editor.lineHeight": 30 }
真正容易被忽略的是:行高和字间距不是“调大就舒服”,而是要和字体度量匹配。比如 JetBrains Mono 自带较大 descender,lineHeight 设太小会导致下划线贴到下一行;而 letterSpacing 在高 DPI 屏上微调 0.1 就可能让注释对齐崩掉。建议先固定字体和字号,再小步试值,别一上来就调 30 或 -0.5。


















