sublime text不支持letter-spacing或font-kerning,因其文本渲染层未暴露字符间距接口,所有字体参数由操作系统底层处理;替代方案是选用字间距宽松的等宽字体(如fira code、jetbrains mono)或调大font_size并配line_padding_*降低视觉密度。

Sublime Text 不支持直接调整字符间距(letter-spacing),行高也必须用 line_height 或 line_padding_top/line_padding_bottom,而不是 CSS 风格的 line-height 倍数写法。
为什么不能设 letter_spacing 或 font-kerning
Sublime Text 的文本渲染层不暴露字符间距控制接口,所有字体相关参数都交由操作系统底层(GDI/Core Text/FreeType)处理。你找不到 letter_spacing、font-kerning、tracking 这类字段——写了也静默忽略。官方配置文档和源码中均无对应实现。如果看到某教程写了这些,基本是混淆了 Sublime 与 VS Code 或浏览器环境。
替代方案只有两个:
- 换用本身字间距宽松的等宽字体,比如
"Fira Code"、"JetBrains Mono"、"Cascadia Code"(注意填全名,不是文件名) - 调大
font_size再配合适line_padding_*,让视觉密度自然降低
line_height 是什么?它和 line_padding_top/line_padding_bottom 怎么选
line_height 是两行文字基线之间的绝对像素距离,设为 0 表示交还给字体度量;设为正数(如 "line_height": 20)则强制生效。它和 line_padding_* 互斥:只要 line_height 存在,line_padding_top 和 line_padding_bottom 就被忽略。
实操建议:
- 追求简单统一效果,优先用
line_height:等宽字体下,font_size14 →line_height19–21;16 → 22–24 - 需要微调上下留白不对称(比如缓解视觉压迫感),必须用
line_padding_top+line_padding_bottom,且两者都得显式写出,不能只设一个 - 避免奇数值(如 17、19、23):部分字体在某些 DPI 下会触发亚像素偏移,光标线看起来“浮”在文字中间
改完没反应?先查这三处
90% 的“没生效”问题不是参数错,而是加载路径或覆盖逻辑出问题:
- 确认改的是 Preferences → Settings 右侧的「User Settings」,不是左侧 Default(只读,改了也白改)
- 检查有没有语法专属设置干扰:Preferences → Settings – Syntax Specific(比如 Python.sublime-settings)里也写了
line_height,它会覆盖全局 - 某些主题(如 ayu、Soda、Theme - Default 的旧版)会在
.sublime-theme文件里硬编码"line_height",临时切换成 Adaptive 主题测试是否恢复
UI 元素(侧边栏、标签页)的字体和行距怎么调
font_size 和 line_height 只作用于编辑区,对侧边栏、标签页、状态栏完全无效。ST4.4277+ 才支持 ui_font_size,但 ST3 必须手动改主题文件:
- Preferences → Browse Packages… → 进入
Theme - Default/或你当前主题目录 - 编辑
Default.sublime-theme,搜索"class": "sidebar_label",在里面加"font.size": 14 - 同理找
"class": "tab_label"改标签页字体大小 - 改完需完全退出 Sublime 并重启,第三方主题可能覆盖你的修改
真正容易被忽略的是:同一套 line_padding_top/line_padding_bottom 值,在 Windows/macOS/Linux 上实际渲染出来的视觉行距可能差 1–2px——这不是 bug,是底层渲染器差异,别硬套跨平台配置。











