直接结论:改font_face和line_padding_top/line_padding_bottom就足够,line_height在Sublime Text 4中已不可靠;推荐Fira Code(需配"liga"启用连字)、JetBrains Mono(易混字符优化)、Source Code Pro(跨平台兼容最佳),行距通过双padding微调,侧边栏等UI元素需修改主题文件。

直接结论:改 font_face 和 line_padding_top/line_padding_bottom 就够了,line_height 在 Sublime Text 4 中已不可靠,别碰。
怎么选英文代码最舒服的字体?
英文代码阅读优先考虑字符区分度和横向节奏,不是“越细越高级”。Fira Code、JetBrains Mono、Source Code Pro 这三款是实测最稳的:
-
Fira Code:连字(ligatures)开启后!=→≠、=>→⇒,视觉跳转更自然;但需配"font_options": ["liga"],否则白设 -
JetBrains Mono:a/g/1/0 等易混字符刻意拉宽,长时间扫代码不易错眼;默认不带连字,更“干净”,适合调试时盯细节 -
Source Code Pro:Adobe 出品,渲染兼容性最好,Windows/macOS/Linux 下表现最一致;字重选择多(Light/Medium/Regular),小字号(12–13)下比 Fira 更稳
避坑点:Consolas 在 macOS 上渲染偏虚,Menlo 在高分屏下易发虚,都不推荐作为主力英文字体。
行间距调多少才不累眼?
英文代码行距的核心矛盾是:太紧 → 扫行串行;太松 → 滚动跳动感强。真正起效的是 line_padding_top 和 line_padding_bottom,不是 line_height。
- 起步值:字体
font_size是 13 或 14 时,设"line_padding_top": 3+"line_padding_bottom": 3最平衡 - 微调逻辑:每增大 1px
font_size,两个 padding 各加 0.5px(向下取整);比如从 14→15,就改成3和3→3和4 - 不对称技巧:设
"line_padding_top": 4+"line_padding_bottom": 2,文字视觉下沉,光标线更居中,适合写长函数时减少压迫感
注意:line_padding_top 和 line_padding_bottom 必须都设,单边为 0 会导致折叠图标偏移、光标上下跳动。
为什么改完没反应?先查这三处
90% 的“设置无效”不是参数错,而是加载路径被覆盖:
- 确认改的是 Preferences → Settings 右侧「User Settings」面板,左侧 Default 是只读的,改了也白改
- 检查是否开了语法专属设置:Preferences → Settings – Syntax Specific → Python.sublime-settings 里如果写了
line_padding_top,它会直接盖掉全局设置 - 某些主题(如老版
ayu、Theme - Soda)在.sublime-theme文件里硬编码了line_height,临时切回Adaptive主题测试,能生效说明是主题冲突
保存后无需重启,但若用了自定义 font_face,可能需要 Ctrl+R 刷新当前视图才能稳定显示。
侧边栏、行号栏的行距怎么同步?
line_padding_top 和 line_padding_bottom 只管编辑区,对侧边栏、标签页、行号栏完全无效。这些区域的行距由当前主题文件控制:
- 装插件
PackageResourceViewer(Ctrl+Shift+P → Install Package) - Ctrl+Shift+P →
PackageResourceViewer: Open Resource→ 选你当前主题(如Material Theme)→ 打开Material-Theme.sublime-theme - 搜索
"class": "sidebar_tree",在对应 block 里加"row_padding": [0, 4](第二个数字是垂直间距) - 同理,搜
"class": "gutter"可调行号栏行距,"class": "tabset_control"调标签页
主题文件改完要重启 Sublime 才生效,且升级主题时会被覆盖——建议备份修改或用 Override 功能存到 User 目录。
真正难的不是设几个数字,而是不同字体在不同系统上渲染出的实际行距差 1–2px,得靠肉眼微调。别信“一套参数通吃”,Mac 上调好的值,Windows 上很可能还得加 1px line_padding_bottom。











