必须开启enable_ime:true、关闭hardware_acceleration:"none"、安装魔改版IMESupport插件并关闭搜狗高级文字服务,三者缺一不可,且需彻底退出subl.exe进程后重启才生效。

Sublime Text 中文输入法候选框卡在左上角、光标移动时候选框不跟、上屏文字插错位置——根本不是“设置没找对”,而是 enable_ime 没开、hardware_acceleration 没关、或 IMESupport 插件压根没生效。这三者缺一,所有操作都是白忙。
必须设 enable_ime: true(ST4 build 4126+ 硬性前提)
不开这个,Sublime 就不向 Windows 系统上报光标坐标和 DPI 缩放因子,输入法连“该画在哪”都不知道。这不是可选项,是启动 IMM32 接口的开关。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 若该行不是最后一行,末尾必须加英文逗号
- 保存后,必须彻底退出所有
subl.exe进程(任务管理器里杀干净),再重启——仅关闭窗口或 Reload Window 无效
必须关 hardware_acceleration: "none"(GPU 渲染干扰坐标计算)
默认开启的 OpenGL 渲染会让 Sublime 报告的光标坐标被错误放大(尤其高 DPI 屏),而输入法仍按原始像素定位,结果偏移几十像素甚至跳到副屏。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false或"off") - macOS 用户若用 Metal 后端,还需加:
"gpu_window_buffer": false - Linux 用户需额外设环境变量:
GTK_IM_MODULE=xim(Wayland 下还必须加GDK_BACKEND=x11)
别装 Package Control 里的原版 IMESupport(已失效)
Package Control 搜索安装的 IMESupport 是 ST3 时代的原版,对 ST4 + Win10/11 + 高分屏完全不兼容。真正起效的是社区魔改分支(如 zcodes/IMESupport),它重写了 DPI 补偿和多屏光标跟踪逻辑。
- 卸载通过 Package Control 安装的旧版(否则可能冲突)
- 从 GitHub 下载魔改版 ZIP,解压后重命名为
IMESupport(去掉-master后缀) - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,把整个IMESupport文件夹拖进该目录 - 路径必须为
Packages/IMESupport/ime_support.py存在,否则 Sublime 不加载
搜狗输入法要关“高级文字服务”(主动绕过 IMM32)
搜狗新版默认启用“高级文字服务”,它绕过系统 IMM32 接口直接 hook 文本框,和 Sublime 的轻量输入流天然冲突——这不是 Sublime 的锅,是搜狗自己放弃兼容。
- 右键搜狗状态栏图标 →
设置属性→高级标签页 - 取消勾选:
使用高级文字服务(推荐)和允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 改完立即生效,无需重启 Sublime 或输入法
最容易被忽略的点:所有配置改完后,必须杀光 subl.exe 进程再重启;任何一步漏掉(比如只关 hardware_acceleration 却没开 enable_ime),都会卡在“看似设置了却没用”的状态里。











