Sublime Text 行间距由 line_padding_top 和 line_padding_bottom 精确控制,单位为整数像素;line_height 在 ST4 中已弱化且易被主题或插件覆盖,非可靠调节方式。

Sublime Text 的行间距不是靠 line-height(CSS 风格)或 margin 控制的,真正起作用的只有两个参数:line_padding_top 和 line_padding_bottom;line_height 虽然存在,但在 Sublime Text 4 中已退居次要地位,且行为不稳定——多数情况下你调它没反应,不是你手误,是它被主题或渲染层绕过了。
为什么改了 line_height 没变化?
这不是配置写错了,而是 Sublime Text 的加载优先级和实际生效逻辑在“骗”你:
-
line_height必须写在 Preferences → Settings 右侧「User Settings」顶层对象里,嵌套在font_face或其他字段下会静默失效 - 老主题(如 Soda、ayu)会在自己的
.sublime-theme文件里硬覆盖line_height,哪怕你设成 30,它也强制重置为 16 - 插件如 Origami、BracketHighlighter 会注入 UI 层,遮挡行距变化,导致“看起来没变”
- macOS 上开启视网膜缩放时,
line_height对font_size小于 12 的字体基本无效
line_padding_top 和 line_padding_bottom 怎么配才稳?
这才是 Sublime 渲染引擎真正读取的底层行距开关,单位是整数像素,加起来就是你看到的“两行文字之间的空白高度”:
- 值必须是整数,
"line_padding_top": 2.5会被截成 2 - 推荐对称设置起步:
"line_padding_top": 3, "line_padding_bottom": 3(总 +6px),适合font_size14–16 的等宽字体 - 想缓解视觉压迫感?试试不对称:
"line_padding_top": 4, "line_padding_bottom": 2,文字会轻微下沉,眼睛更放松 - 单侧设为 0(比如只设
top)会导致光标线错位、折叠图标偏移,别这么干 - 改完保存即生效,但若用了自定义
font_face(如 Fira Code),可能需要 Ctrl+R 刷新当前视图才稳定显示
哪些地方容易“白调”?
行距设置只影响编辑区正文,其他区域完全不买账:
- 侧边栏、标签页、状态栏的“行高”得靠
ui_line_height(Sublime Text 4 新增),和编辑区无关 - 行号栏的间距也受
line_padding_*影响,但如果你发现行号和代码之间空太大,直接把它们设成1或0就行,别动font_size -
margin是控制整块代码与上下文的垂直空隙(仅对折叠区域生效),不是行距;设它来调行距=走错路 - 别信“用 CSS 注入”或 “font_options 加 letter-spacing”——Sublime 不支持字间距调节,这是底层限制,不是隐藏功能
最常被忽略的一点:同一组 line_padding_top/line_padding_bottom 值,在 Windows、macOS、Linux 上实际渲染差 1–2px,这不是 bug,是 GDI/Core Text/FreeType 渲染器本身的差异。别跨平台硬套数值,本地调到眼睛舒服为止才是真标准。

















