sublime text 默认不支持系统级中文输入,核心在于输入法框架与 gui 层对接失败;linux 需预加载 libsublime-imfix.so 并配置 fcitx5 启用非 gtk 应用支持,macos 需设置精确 keyboard_layout 值,windows 则需关闭 immsupport 以避免 imm 冲突。

Sublime Text 默认不支持系统级中文输入,尤其在 Linux 和早期 macOS 上,光装汉化包 ChineseLocalizations 是没用的——菜单能变中文,但打不出一个汉字。核心问题不在语言包,而在输入法框架与 Sublime 的 GUI 层对接失败。
Linux 下 fcitx5 + libsublime-imfix.so 修复输入框失焦
Sublime Text(尤其是 ST3/ST4)在 GTK 环境下无法接收 fcitx5 的输入事件,典型现象是:切换到中文输入法后,光标不跟随、候选框不弹出、按空格无响应。这不是 Sublime 自身 bug,而是它绕过了 GTK 的输入法接口。
- 必须编译并注入
libsublime-imfix.so:该动态库劫持gtk_im_context_set_client_window调用,把输入焦点手动桥接到 fcitx5 - 路径要严格匹配:ST4 默认安装在
/opt/sublime_text,so 文件必须放进去,且启动命令需预加载:LD_PRELOAD=/opt/sublime_text/libsublime-imfix.so /opt/sublime_text/sublime_text - fcitx5 配置里必须启用「在非 GTK 应用中启用」选项(
fcitx5-configtool→ Input Method → ☑ Enable in non-GTK applications) - 别用旧版
fcitx或ibus:它们和 ST4 的 Wayland 兼容性极差,fcitx5 是目前唯一稳定方案
macOS 中 keyboard_layout 设置为 com.apple.keylayout.Chinese.Pinyin 才生效
macOS 用户常误以为只要系统输入法开着就能打中文——实际 Sublime Text 会主动屏蔽非「系统默认键盘布局」的输入源。即使你已添加简体拼音,若 keyboard_layout 设置为 "English" 或留空,中文输入仍被静默丢弃。
- 打开
Preferences → Settings,在右侧用户设置里加一行:"keyboard_layout": "com.apple.keylayout.Chinese.Pinyin" - 值必须是完整 Bundle ID,不能简写为
"Chinese"或"Pinyin",否则 Sublime 直接忽略 - 修改后无需重启,但当前文件需重新聚焦一次(比如切到其他 app 再切回来)
- 如果用第三方输入法(如鼠须管、小狼毫),需在系统「键盘」设置中将对应输入源设为「允许在所有应用中使用」
Windows 上中文输入基本可用,但需关掉「IMM 支持」开关
Windows 版 Sublime Text 4 Build 4169+ 默认启用了 IMM(Input Method Manager)兼容层,听起来是好事,实则导致部分搜狗、QQ 拼音在长文本编辑时卡顿、候选框错位。这不是驱动问题,而是 IMM 和 Sublime 的渲染线程冲突。
- 打开
Preferences → Settings,添加:"immsupport": false - 该配置项仅对 Windows 有效,macOS/Linux 下写入会被忽略
- 关闭 IMM 后,输入法退回到更底层的 TSF(Text Services Framework),反而更稳定
- 若你用的是微软拼音,建议同时在系统设置中关闭「使用 Unicode UTF-8 提供全球语言支持」,避免字符编码冲突
真正难的不是装插件,而是理解 Sublime Text 把输入法当「外部设备」而非「系统服务」来对待。它不会主动拉取输入法状态,所有中文输入都依赖操作系统在进程启动前就完成的环境注入——漏掉 LD_PRELOAD、写错 keyboard_layout 值、或开错 IMM 开关,都会让前面所有汉化步骤白做。











