font_options必须写成数组形式才生效,如["bold"]、["italic"]、["bold","italic"]或["subpixel_antialias"];字符串写法会导致配置失效并回退默认字体。

font_options 里怎么写 bold 和 italic 才生效
font_options 是控制字体粗细和倾斜的唯一配置项,但它不是字符串,而是数组。写错格式会导致整个用户设置失效,Sublime 会悄悄回退到默认字体。
常见错误写法:"font_options": "bold" 或 "font_options": "bold italic" —— 这两种都会让配置解析失败,字体变回系统默认(通常是 Consolas 或 Menlo)。
正确写法必须是数组形式:
-
"font_options": ["bold"]:仅加粗 -
"font_options": ["italic"]:仅斜体 -
"font_options": ["bold", "italic"]:加粗+斜体 -
"font_options": ["subpixel_antialias"]:开启亚像素抗锯齿(对中文尤其重要)
注意:不是所有字体都自带 bold/italic 变体。比如 "Fira Code" 默认不带斜体,即使写了 ["italic"] 也无效;而 "Consolas"、"JetBrains Mono" 等编程字体通常支持完整变体。
为什么注释或关键字设了 italic 却没反应
这是典型的「作用域样式」和「全局字体设置」混淆问题。font_options 控制的是编辑器整体代码区的字体渲染方式,而注释、关键字等元素的斜体效果,必须在配色方案(.sublime-color-scheme)里单独指定 font_style。
例如想让 JavaScript 注释变斜体,不能靠改 font_options,得在自定义 color scheme 文件中加规则:
{
"scope": "comment.line.double-slash.js, comment.block.js",
"font_style": "italic"
}
关键点:
- 作用域名必须精确匹配,用
Ctrl+Shift+P→Show Scope Name查真实 scope(如comment.line.double-slash.python) -
font_style值只能是"normal"、"italic"、"bold"或"bold italic"(字符串,不是数组) - 如果用了第三方主题(如 Monokai、Dracula),它可能覆盖你的规则——优先在自己新建的
.sublime-color-scheme中修改
中文字体下 bold/italic 显示异常怎么办
Windows/macOS 的中文字体(如"Microsoft YaHei"、"PingFang SC")多数不提供真正的 bold/italic 变体,Sublime 会尝试模拟(fake bold / fake italic),结果常是模糊、发虚或完全无变化。
解决路径很窄,但有效:
- 放弃单字体方案,改用 fallback 字体链:
"font_face": "Fira Code, PingFang SC, Microsoft YaHei"—— 英文走 Fira Code(真 bold/italic 支持),中文 fallback 到系统字体(只负责显示,不参与样式) - 禁用亚像素抗锯齿:
"font_options": ["no_subpixel_antialias"],能缓解 fake italic 的毛边问题 - 接受现实:中文关键词/注释设
font_style: italic在 color scheme 里基本无效,不如用颜色区分(比如注释设成#666,关键字设成#007acc)
line_height 和 font_size 耦合影响视觉粗细感
字号调大后如果行高没跟上,字符会“挤在一起”,视觉上显得更“重”甚至糊成一片;反之,line_height 过大会让字体显得单薄、轻飘。
这不是字体粗细本身变了,而是密度错觉。实际调整建议:
-
font_size每增加 1,line_height建议同步微调 +0.02~0.05(如从 13→14,line_height从 1.15→1.18) -
line_height是倍数,不是像素值,且只在 ST4+ 生效;ST3 用户只能依赖字体自身行距,或换用行距更舒展的字体(如"JetBrains Mono") - 别用
line_spacing(已弃用),它在新版本中被忽略
["bold"],而是判断该在哪一层加:全局渲染?语法作用域?还是干脆换字体。多数人卡在第一层就以为失败了,其实只是没往下挖到 scope 规则或 fallback 链。











