sublime中文输入法候选框不跟随光标,根本原因是未正确传递真实坐标给windows imm32接口,尤其在高dpi屏幕下;需启用enable_ime、禁用硬件加速、设置高dpi兼容模式、安装魔改版imesupport插件,并关闭搜狗高级文字服务。

Sublime 中文输入法候选框不跟随光标,不是“设置没开”,而是它压根没把真实坐标传给 Windows IMM32 接口——尤其在 125%/150% 高 DPI 屏幕下,坐标偏移几十像素是常态。
启用 enable_ime 是最轻量但必须的第一步
Sublime Text 4 build 4126+ 内置了实验性 IME 支持,但默认关闭。不开这个,后面所有操作都只是补丁叠补丁。
- 打开
Preferences → Settings,在右侧用户设置中添加:"enable_ime": true(注意末尾英文逗号) - 保存后,**必须彻底退出所有
subl.exe进程**(任务管理器里杀干净),再重启 - 该选项启用原生 IMM32 兼容层,让 Sublime 能正确响应焦点、编码状态和候选窗定位事件
关掉 hardware_acceleration 并设高 DPI 兼容模式
GPU 渲染 + 系统虚拟缩放 = 坐标错乱。IMM32 只认 CPU 渲染下的原始像素坐标,而高 DPI 下系统会放大坐标值,输入法按“放大后”的坐标画框,自然飞到左上角或副屏。
- 用户设置中加:
"hardware_acceleration": "none" - 右键 Sublime 快捷方式 →
属性 → 兼容性 → 更改高 DPI 设置→ 勾选“替代高 DPI 缩放行为”,下拉选“应用程序” - 两步缺一不可:只关硬件加速,高分屏下仍偏移;只设 DPI 模式,GPU 可能卡住输入法消息循环
别装 Package Control 里的原版 IMESupport,手动装魔改版
Package Control 中的 IMESupport 是老版本,对 ST4 + Win10/11 + 高分屏基本无效。真正起效的是社区重写的增强分支,它做了 DPI 缩放补偿和多屏光标跟踪。
- 从 GitHub 下载魔改版源码(搜索关键词
zcodes/IMESupport或国内镜像链接) -
Preferences → Browse Packages打开插件目录,新建文件夹IMESupport,把解压出的所有文件(含ime_support.py)复制进去 - 卸载旧版
IMESupport(如果有),重启 Sublime,无需额外配置
搜狗输入法必须关“高级模式”
搜狗新版默认启用“高级文字服务”,它绕过 IMM32,直接 hook 文本框,和 Sublime 的轻量输入流严重不兼容,导致失焦、乱码、候选框乱飘。
- 右键搜狗状态栏图标 →
设置属性 → 高级 - 取消勾选:
使用高级文字服务(推荐)、允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 临时验证可用微软拼音:开启“使用以前版本的微软拼音输入法”
最容易被忽略的是进程没杀干净——哪怕只留一个 subl.exe 在后台,新配置也不会生效。另外,每次 Sublime 更新后,魔改版 IMESupport 和 sublime_imfix.dll(如使用)都可能需要重新部署。











