必须用 sidebar-fix.sublime-theme 显式指定中文字体,因 Sublime 侧边栏与编辑区渲染路径分离,Settings 中 font_face 对 sidebar_label 无效;需在 theme 文件中严格定义 sidebar_label class 并匹配系统真实字体名,Linux 还需安装中文字体及输入法前端依赖。

侧边栏、菜单、标签页出现方块或空白,不是文件编码问题,也不是 default_encoding 或 fallback_encoding 配置错了——这是 UI 渲染层压根没加载中文字体,必须用 sidebar-fix.sublime-theme 显式指定字体名。
侧边栏中文显示方块,改 Settings 里的 font_face 没用
Sublime 的编辑区和侧边栏走两套渲染路径:Settings 里设的 font_face 只影响代码视图、状态栏、标签页,对侧边栏的 sidebar_label 类完全不生效。你加了 "font_face": "Microsoft YaHei",它不会自动向下穿透到 sidebar 容器内部。
-
sidebar_label是侧边栏每一行文件/文件夹名的专属 class,必须在 theme 文件里单独声明 - 系统装了中文字体也不代表 Sublime 会 fallback;没在 theme 里写死,就静默显示方块
- 拼错 class 名(比如写成
sidebar-label或Sidebar_Label)、多加逗号、引号不闭合,theme 会静默失效,不报错也不提示
怎么写有效的 sidebar-fix.sublime-theme
在 Packages/User/ 目录下新建文件 sidebar-fix.sublime-theme,内容严格按 JSON 格式:
[{
"class": "sidebar_label",
"font.face": "Noto Sans CJK SC",
"font.size": 13,
"line_height": 1.35
}, {
"class": "sidebar_container",
"content_margin": [8, 4, 8, 4]
}]
-
"class": "sidebar_label"这一行不能少,大小写必须全小写、连字符不能换下划线 -
font.face值必须是系统真实存在的字体名:"PingFang SC"(macOS)、"Microsoft YaHei"(Windows)、"Noto Sans CJK SC"(Linux) - 保存后必须彻底退出 Sublime Text(不是关闭窗口,是右键托盘图标 → Exit),再重开才生效
Linux 用户额外要做的三件事
即使 theme 写对了,Linux 下仍大概率继续方块——缺底层支撑:
- 没装中文字体:运行
sudo apt install fonts-noto-cjk(Ubuntu/Debian)或等效命令 - 输入法前端缺失:需装
fcitx5-frontend-gtk3和fcitx5-frontend-qt5 -
IMESupport插件失效:Package Control 里的旧版已不兼容,得手动下载魔改版放进Packages/IMESupport/并卸载原版
别碰 ConvertToUTF8 或 fallback_encoding 来修侧边栏
这两个东西只管文件内容解码,跟 UI 字体毫无关系。网上很多教程混为一谈,结果改了一堆配置重启十次还是方块——根本方向错了。真正起效的只有 theme 文件 + 系统字体 + Linux 特定依赖这三环,缺一不可。主题文件里漏掉 sidebar_label 这个 class,其他都白搭。

















