sublime侧边栏中文显示方块是因为其渲染逻辑独立于编辑区,只认theme文件中显式配置的"sidebar_label"类,改font_face等全局设置无效;必须新建.sublime-theme文件定义该类并指定中文字体,且linux用户还需解决字体安装、输入法及硬件加速问题。

侧边栏中文显示方块,不是编码或系统 locale 问题,而是 Sublime 的 UI 渲染层压根没加载中文字体——必须通过 .sublime-theme 文件显式配置 sidebar_label 类,否则改任何 font_face、fallback_encoding 都无效。
为什么 Settings 里改 font_face 对侧边栏没用?
Sublime 的侧边栏文字渲染和编辑区是两套独立逻辑:编辑区读 font_face,侧边栏只认当前启用的 theme 文件中明确声明的 "class": "sidebar_label" 节点。很多主题(比如 Material Theme、ayu)根本没写这一项,或者写了但字体值是空、是英文名、或指向一个不含中文的等宽字体。
常见错误现象:
- 编辑区中文正常,侧边栏全是 □
- 改了
"font_face": "Microsoft YaHei"后,标签页和状态栏变中文了,侧边栏纹丝不动 - 装了 ChineseLocalization 插件,菜单栏汉化了,右键菜单仍是英文+方块
实操建议:
- 打开
Preferences → Browse 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] }] - 在
Settings – User中添加:"theme": "sidebar-fix.sublime-theme"
Linux 用户额外要过三关
即使 theme 写对了,Linux 下常卡在字体、输入法、渲染三处:
-
fc-list :lang=zh确认系统已安装中文字体(如Noto Sans CJK SC或WenQuanYi Micro Hei),没装就sudo apt install fonts-noto-cjk(Ubuntu/Debian) - 检查环境变量:
echo $GTK_IM_MODULE应为ibus或fcitx;若为空,需在~/.profile加export GTK_IM_MODULE=ibus - 禁用硬件加速试试:
"hardware_acceleration": "none"加到Settings – User,某些 Intel 集显 + GTK3 组合下会因 OpenGL 渲染导致文字 fallback 失败
不解决这三项,哪怕 sidebar_label 配得再准,点开文件夹瞬间也可能闪回方块。
右键菜单中文怎么加?别指望插件自动翻译
Sublime 原生右键菜单(如 “Reveal in Side Bar”、“Open Containing Folder”)是硬编码字符串,ChineseLocalization 插件完全不处理它。SideBarEnhancements 等插件新增的项(如 “New File”、“Open in Terminal”)更是纯英文字面量。
实操路径:
- 进
Packages/SideBarEnhancements/目录(Preferences → Browse Packages…) - 编辑
Default.sublime-menu,把"caption": "New File"改成"caption": "新建文件" - 所有中文无需转义,但 JSON 结构必须合法:保留双引号、末尾逗号(除最后一项)、缩进不影响解析
- 改完必须彻底退出再重开(
Ctrl+Q/Cmd+Q),Ctrl+R不重载菜单定义
注意:AFileIcon、SideBarGit 等插件的菜单文件位置、结构各不相同,不能套用同一份 patch。
高分屏下字体发虚?别乱调 font_size
Windows 上发虚主因是 GDI 渲染,macOS 上则是误启了 "no_antialias"。这两者都和字体大小无关。
- Windows:在
Settings – User加"font_options": ["directwrite"],并确认系统 ClearType 已开启 - macOS:检查设置里有没有
"font_options": ["no_antialias"],有就删掉——Core Text 默认就是最优渲染,加任何选项反而降质 - 高分屏缩放请用
"ui_scale": 1.25,而不是把font.size从 12 拉到 18——后者会让图标模糊、行距崩坏
真正容易被忽略的是:theme 文件里可能硬编码了 font_options(比如某些主题自带 "gdi"),这种覆盖优先级高于用户设置,得去对应 .sublime-theme 里手动搜删。











