必须开启enable_ime、关闭hardware_acceleration并设置DPI兼容模式,三者缺一不可;再安装魔改版IMESupport插件并禁用搜狗高级模式,才能解决Sublime中文输入法候选框不跟随光标问题。

Sublime 的中文输入法候选框不跟随光标,不是插件没装对,而是它根本没拿到正确的屏幕坐标——尤其在 Windows 高分屏(125%/150% DPI)、多显示器或搜狗/QQ 输入法下,enable_ime 关着、hardware_acceleration 开着、DPI 兼容没设,三者任缺其一,插件再强也白搭。
必须开启 enable_ime(ST4 build 4126+)
这是 Sublime Text 4 自 build 4126 起内置的 IME 支持开关,不是可选项,是底层通信通道。不开它,所有后续设置都只是“蒙眼修车”。
- 打开
Preferences → Settings,在右侧用户设置中添加:"enable_ime": true,注意末尾加英文逗号(若非最后一行) - 保存后,**必须彻底退出 Sublime**:右键托盘图标选
Exit,或进任务管理器杀掉所有subl.exe进程 - 该选项启用 Windows 原生 IMM32 接口,让 Sublime 能响应焦点切换、光标重定位、编码状态变更等事件;未开启时,
IMESupport插件连坐标源都收不到
Windows 用户必关 hardware_acceleration 并设 DPI 兼容
GPU 渲染 + 系统虚拟缩放 = 坐标计算失真。Sublime 报给输入法的像素值被放大了 1.25 倍(125% 缩放),输入法按这个错值定位,候选框自然飞到左上角甚至副屏。
- 在用户设置中加:
"hardware_acceleration": "none"(不是false,字符串值) - 右键 Sublime 快捷方式 →
属性 → 兼容性 → 更改高 DPI 设置→ 勾选替代高 DPI 缩放行为,下拉选应用程序 - 两步缺一不可:只关硬件加速,高分屏下仍偏移;只设 DPI 模式,GPU 可能卡住输入法消息循环
- 别碰已废弃的
gpu_window_buffer,它在新版本中无作用,还可能干扰渲染逻辑
别用 Package Control 装的原版 IMESupport
Package Control 里搜到的 IMESupport 是旧分支,不支持 ST4 的插件加载机制,也不处理 DPI 缩放补偿。真正起效的是社区魔改版,它重写了坐标映射逻辑,支持多屏光标跟踪和缩放校准。
- 去 GitHub 下载魔改源码(如
https://www.php.cn/link/9255e8df7dc6a615445f42c0fd94587a),解压后重命名文件夹为IMESupport(去掉-master) - 按
Ctrl+Shift+P → Preferences: Browse Packages打开目录,把整个IMESupport文件夹拖进去 - 确保之前没装过其他同名插件,旧版残留会冲突;重启 Sublime 后自动生效,无需额外配置
- 如果装完仍无效,先检查是否漏了
enable_ime或hardware_acceleration设置——插件不是万能补丁,是坐标修正器,前提是坐标源得先通
搜狗输入法要关“高级模式”
搜狗新版默认启用 使用高级文字服务,它绕过系统 IMM32 接口,直接 hook 文本控件,和 Sublime 这类轻量编辑器的输入流严重不兼容,导致失焦、乱码、候选框冻结。
- 右键搜狗状态栏图标 →
设置属性 → 高级 - 取消勾选:
使用高级文字服务(推荐)和允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 临时验证方法:切到微软拼音,进其
键盘选项 → 常规 → 使用以前版本的微软拼音输入法,基本秒恢复
最常被忽略的一点:改完所有配置后,不杀干净 subl.exe 进程就重启,等于没改。Windows 下 Sublime 的 IME 状态是进程级缓存的,残留进程会继续用旧坐标逻辑。每次验证前,务必确认任务管理器里一个 subl.exe 都没有。

















