装了fira code/jetbrains mono后代码行挤在一起,是因默认line_padding_top和line_padding_bottom为0,无法匹配等宽字体纵向高密度,导致基线过近、标点裁切、光标跳行;应手动设"line_padding_top": 3,"line_padding_bottom": 3起步,并随font_size增大同步增加padding,避免单侧为0或依赖失效的line_height。

为什么装了Fira Code/JetBrains Mono后代码行挤在一起
不是字体本身有问题,是Sublime默认的line_padding_top和line_padding_bottom值(通常为0)对等宽字体纵向密度太“薄”——字形高、字肩窄,但上下留白没跟上,导致基线靠得太近,中文标点下半部被裁、光标跳行不准、连字符视觉重叠。
- 等宽字体(如
Fira Code、JetBrains Mono)比系统默认字体(如Consolas)纵向更“实”,font_size: 14配line_padding_top: 0时,实际行间像素间隙常不足12px - 若同时启用了
font_options(如["gray_antialias"]),抗锯齿会让字形视觉高度略增,进一步压缩可用空间 - Windows启用ClearType或macOS开启subpixel_antialias时,渲染占用高度可能比设定值多1–2px,加剧截断
怎么配line_padding_top和line_padding_bottom才不重叠
必须用像素值手动补足间隙,别碰line_height——它在ST4里已被主题/插件广泛覆盖,设了也常静默失效。
- 起步值:用
font_size: 14时,先试"line_padding_top": 3+"line_padding_bottom": 3(总+6px),观察句号、顿号、下划线是否完整显示 - 调大字号时同步加padding:每+2px
font_size,建议+1px两侧padding(如font_size: 16→line_padding_top/bottom各设4) - 避免单侧为0:只设
line_padding_top不设line_padding_bottom会导致折叠箭头偏移、断点图标错位 - 不对称微调有效:若文字整体“浮”在行中,可试
"line_padding_top": 2,"line_padding_bottom": 4让视觉重心下沉
改完配置没反应?优先排查这三处
90% 的“无效”不是参数错,而是加载路径或冲突被忽略。
- 确认改的是
Preferences → Settings右侧「User Settings」面板,不是左侧只读的Default Settings - 检查是否被语法专属设置覆盖:打开
Preferences → Settings – Syntax Specific(比如Python.sublime-settings),里面若写了line_padding_*,会直接屏蔽全局配置 - 主题硬编码干扰:临时切换到内置主题
Adaptive测试;若这时正常,说明当前主题(如ayu、Soda)在.sublime-theme里强制重置了line_padding_top或line_padding_bottom
行号被截断或与代码错位怎么办
自定义字体变宽后,行号区(gutter)宽度不会自动扩展,line_padding_*调再大也救不了——它只影响文本行内间隙,不扩大gutter区域本身。
- 行号区宽度由主题控制,需手动编辑
Default.sublime-theme:用PackageResourceViewer打开该文件,在所有"class": "gutter"规则里加"min_width": 48(足够显示5位数行号) - 别依赖
margin参数:它只调节行号和代码之间的横向间距,不解决数字被裁问题 - 换字体时注意字宽:
Source Code Pro比Cascadia Code在小字号下更紧凑,能缓解gutter挤压
font_size、line_padding_top、line_padding_bottom和gutter宽度四者在你当前屏幕+系统+字体组合下达成视觉平衡——微调1px都可能改变阅读疲劳度。











