vscode行间距由editor.lineheight控制,需设为整数、避免主题覆盖、关闭fontligatures才生效;终端、文件树及语言专属行距需单独配置。

VSCode 行间距不是靠“看起来像”去调的,核心就一个配置项:editor.lineHeight,设错值或被覆盖,再调也没用。
为什么改了 editor.lineHeight 没反应
常见错误现象:输入 24、保存、行距纹丝不动;或者换主题后又变回挤在一起。
- 检查是否被当前主题强制覆盖 —— 主题的
package.json或内置设置里写了"editor.lineHeight": 0,必须在用户settings.json中显式重写才能生效 - 确认没开
editor.fontLigatures: true:某些等宽字体(如 Fira Code)开启连字后,渲染层会干扰行高计算,关掉立刻见效 - 数值不是小数倍数 ——
editor.lineHeight单位是像素(px),只接受整数;设成1.5或22.5会被截断为1或22,视觉上几乎无变化 - 改的是工作区设置但期望全局生效 —— 检查右上角设置面板切换的是「User」还是「Workspace」,优先级后者更高
editor.lineHeight 的合理取值范围
默认值 0 表示自动计算(约等于字体大小 × 1.2),但实际结果受字体 ascender/descender、系统 DPI、缩放比例影响极大,不推荐依赖。
- 等宽字体(Fira Code / JetBrains Mono / Cascadia Code):
22~24最常用,清晰不松散 - 小字号(
fontSize: 12)搭配高分屏:可试20~22,避免过空 - 大字号(
fontSize: 16)或带内边距的 Nerd Fonts:建议26~28,否则 descender 会贴到下一行 - Windows 高 DPI 屏幕下慎用 >30 ——
lineHeight是逻辑像素,物理密度高时数值虚高,先试24再微调
终端、文件树、特定语言的行距要单独配
编辑器主区域的 editor.lineHeight 不会影响终端、资源管理器或 Markdown 预览 —— 它们各自有独立配置项。
- 内置终端行距:用
terminal.integrated.lineHeight,值为小数倍数(如1.2),不能填像素 - 文件树缩进(影响折叠箭头和层级对齐感):靠
workbench.tree.indent,单位像素,推荐16~20 - 只给某语言加宽松行距(比如 Markdown 或 JSON):在
settings.json中写"[markdown]": { "editor.lineHeight": 30 } - 别试图用 CSS 覆盖 —— 通过
Developer: Inspect Editor Tokens修改样式表虽可行,但每次 VSCode 更新都可能失效,且不支持导出同步
editor.letterSpacing 是另一个维度,别和行距混用
行距(vertical)和字间距(horizontal)是两套机制,editor.letterSpacing 控制字符间水平增量,单位像素,支持负值,但效果高度依赖字体。
- 设为
0.3对 Fira Code 有效,对 Consolas 几乎无感 - 负值慎用:低于
-0.2就可能在小字号下出现字符粘连,尤其含数字/符号的变量名 - 修改后必须重载窗口(
Developer: Reload Window)才生效,单纯保存设置不触发重绘 - 它不影响行高计算,但若同时调大
letterSpacing和lineHeight,代码块整体“发虚”感会加剧 —— 这是视觉叠加效应,不是 bug
真正卡住多数人的,从来不是找不到配置项,而是改完发现没变,然后反复试各种“网上说的方法”。盯住 editor.lineHeight 是整数、没被主题覆盖、没开连字这三点,90% 的行距问题当场解决。其余都是锦上添花。











