Sublime Text 中文输入法候选框不跟随光标是因未启用 IMM32 兼容层及高 DPI/硬件加速干扰,需开启 enable_ime、禁用 hardware_acceleration、设 DPI 模式为“应用程序”、安装魔改版 IMESupport 插件,并关闭搜狗“高级文字服务”。

Sublime Text 中文输入法候选框不跟随光标,不是“设置没调好”,而是它压根没把真实坐标传给 Windows IME——尤其在 ST4 build 4126+、高 DPI 屏、搜狗/QQ 输入法下,必须打补丁级修复,否则必飞到左上角或副屏。
必须启用 enable_ime 才能激活 IMM32 兼容层
ST4 自 build 4126 起内置了底层 IME 支持,但默认关闭。不加这行,后续所有操作都是临时糊墙。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 确保该行末尾有英文逗号(若后面还有其他配置)
- 保存后,必须彻底退出:右键托盘图标选
Exit,或任务管理器杀掉所有subl.exe进程 - 仅关闭窗口或重载设置无效;重启后才真正加载 IMM32 接口,让光标位置、焦点状态、编码模式可被输入法读取
Windows 高分屏下必须关 hardware_acceleration 并设 DPI 模式为“应用程序”
GPU 渲染 + 系统虚拟缩放(如 125%)会让 Sublime 报告的坐标被错误放大,而输入法仍按原始像素定位,结果就是候选框偏移几十像素。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是布尔值false) - 右键 Sublime 快捷方式 →
属性 → 兼容性 → 更改高 DPI 设置→ 勾选“替代高 DPI 缩放行为”,下拉选应用程序 - 删掉已废弃的
"gpu_window_buffer": true等旧配置,它们会干扰新渲染逻辑 - 两步缺一不可:只关硬件加速,高分屏下仍偏移;只设 DPI 模式,GPU 可能卡住 IME 消息循环
别装 Package Control 里的原版 IMESupport,要手动放魔改版
Package Control 搜索安装的 IMESupport 是 ST3 时代的原版,对 ST4 + Win10/11 + 高分屏完全失效。真正起效的是社区重写的魔改分支,它做了 DPI 缩放补偿和多屏光标跟踪。
- 从 GitHub 下载魔改版 ZIP(如
https://www.php.cn/link/2e9806f9d005b04bf29665e786d9b845),解压后重命名文件夹为IMESupport - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,打开插件目录 - 把整个
IMESupport文件夹拖进该目录(路径应为Packages/IMESupport/ime_support.py等文件存在) - 重启 Sublime,无需额外配置,插件自动生效;原版因缺少 DPI 映射逻辑,装了也白装
搜狗输入法必须关“高级文字服务”模式
搜狗新版默认开启“高级模式”,会绕过部分系统 IMM32 接口,加剧与 Sublime 的坐标不同步——这不是 Sublime 的 bug,是输入法主动放弃兼容。
- 打开搜狗输入法设置 →
高级设置 → 输入法管理 → 高级文字服务 - 取消勾选“启用高级文字服务”(或类似名称,不同版本措辞略有差异)
- 重启搜狗进程(任务管理器结束
SogouCloud.exe和SogouInput.exe) - 微软拼音输入法无需此操作,它是系统原生 IME,兼容性更稳
最易被忽略的是:每次 Sublime Text 更新后,sublime_imfix.dll 补丁需重新复制到安装目录(若你用了 DLL 方案),且杀毒软件常误报拦截——别让它静默删除文件,得手动加信任。

















