候选框卡在左上角或副屏角落,本质是Sublime未向输入法同步光标坐标;必须同时开启"enable_ime": true、设"hardware_acceleration": "none"、安装魔改版IMESupport插件并关闭搜狗高级文字服务,且彻底退出所有subl.exe进程后重启。

候选框卡在左下角(或左上角、副屏角落),本质是 Sublime 没把正确的光标坐标同步给输入法——不是“位置偏了”,而是“压根没传”。必须同时满足三个条件才能让候选框真正跟随光标。
enable_ime 必须设为 true
ST4 build 4126+ 后,enable_ime 是启用 Windows 原生 IMM32 接口的硬开关。不打开它,Sublime 就不会向系统上报光标位置、DPI 缩放因子和焦点状态,输入法只能瞎猜——于是默认画在左上角或左下角。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 如果这行不是最后一行,末尾必须加英文逗号
- 保存后必须彻底退出所有
subl.exe进程(任务管理器里杀干净),再重启——仅关闭窗口无效
hardware_acceleration 必须设为 "none"
GPU 渲染(OpenGL)会让 Sublime 内部坐标计算与输入法使用的屏幕坐标体系脱节,尤其在高 DPI 屏(如 125% 缩放)下,报告的坐标会被放大,而输入法按原始像素定位,结果就是候选框固定在左下角或跳到副屏。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false或"off") - 删掉已废弃的配置项,如
"gpu_window_buffer": true,它们会干扰新渲染逻辑 - macOS 用户若用 Metal 后端,还需额外加
"gpu_window_buffer": false
IMESupport 插件必须手动装魔改版
Package Control 里搜到的原版 IMESupport 是 ST3 时代的,对 ST4 + 高分屏 + 多显示器完全失效。真正起效的是社区重写的魔改分支(如 zcodes/IMESupport),它做了 DPI 补偿和多屏光标跟踪。
- 卸载通过 Package Control 安装的旧版
IMESupport - 去 GitHub 下载魔改版 ZIP(如 zcodes/IMESupport),解压后重命名为
IMESupport(去掉-master) - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,把整个IMESupport文件夹拖进该目录(路径应为Packages/IMESupport/ime_support.py存在) - 重启 Sublime,插件自动生效,无需额外配置
搜狗输入法要关“高级文字服务”
搜狗新版默认开启“高级文字服务”,它绕过 IMM32 直接 hook 文本框,和 Sublime 的轻量输入流冲突。一旦启用,enable_ime 和 IMESupport 全部失效,候选框必然脱离光标。
- 右键搜狗状态栏图标 → “设置属性” → “高级”标签页
- 取消勾选:
使用高级文字服务(推荐)和允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 改完立即生效,无需重启 Sublime 或输入法
最容易被忽略的是:哪怕所有配置都写对了,只要后台还残留一个 subl.exe 进程,新设置就不会加载;而搜狗的“高级文字服务”开关藏得深,很多人调了半天 enable_ime 却忘了关它。











