侧边栏中文显示方块或空白是UI渲染层字体缺失问题,必须在Packages/User/目录下新建sidebar-fix.sublime-theme文件,显式配置sidebar_label类的font.face等属性,并彻底重启Sublime;全局font_face设置无效,Linux用户还需安装中文字体、完善输入法前端及替换IMESupport插件。

侧边栏中文显示方块或空白,和文件编码、default_encoding、fallback_encoding 全无关系——这是 UI 渲染层的字体缺失问题,必须通过 .sublime-theme 文件显式配置 sidebar_label 类的 font.face 才能解决。
为什么改 Settings 里的 font_face 没用
Sublime 的编辑区和侧边栏使用两套完全独立的渲染逻辑:编辑区走 syntax + view 配置,侧边栏只认 theme 文件里明确声明的 class。你在 Settings 里加了 "font_face": "Microsoft Yahei",它只影响代码区域、标签页、状态栏,对 sidebar_label 这个 class 视而不见。
-
sidebar_label是侧边栏中每个文件/文件夹名的渲染节点,必须在 theme 中单独配 - 全局
font_face设置不向下穿透到 sidebar 容器内部 - 即使系统装了中文字体,Sublime 也不会自动 fallback;没在 theme 里声明,就静默显示方块
怎么写有效的 sidebar-fix.sublime-theme
新建 sidebar-fix.sublime-theme 文件,放在 Packages/User/ 目录下,内容必须严格满足 JSON 格式,且只包含真正需要的 class:
[{
"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"这一行不能少,也不能拼错大小写(如写成sidebar-label或Sidebar_Label就失效) -
font.face值必须是系统真实存在的字体名:
macOS 用"PingFang SC",Windows 用"Microsoft Yahei"或"SimHei",Linux 用"Noto Sans CJK SC" - 别加多余逗号、引号不闭合、缩进错误——Sublime 不报错,但整个 theme 会静默失效
Linux 用户绕不开的三步验证
即使 theme 写对了,Linux 下仍可能显示方块,因为缺底层支撑:
- 没装中文字体:运行
sudo apt install fonts-noto-cjk(Ubuntu/Debian)或等效命令 - 输入法前端不完整:需装
fcitx5-frontend-gtk3和fcitx5-frontend-qt5 -
IMESupport插件失效:Package Control 里的旧版不管用,得手动下载魔改版放进Packages/IMESupport/并卸载原版
验证是否生效 & 容易踩的坑
改完必须彻底重启 Sublime(Cmd/Ctrl+Q 再打开),Cmd/Ctrl+R 不重载 theme。验证方式:打开一个含中文路径的文件夹,看侧边栏文件名是否正常。
- 别碰
dpi_scale:网上说设成1.0能“解决方块”,实际是把整个 UI 缩小,不是修复,是降级妥协 - 检查系统是否真有那个字体:macOS 用“字体册”,Windows 查“字体文件夹”,而不是只靠名字猜
- 别在 Settings – User 里写
"theme": "sidebar-fix"—— 必须带.sublime-theme后缀,否则不加载

















