根本问题是sublime text未向输入法传递光标坐标,需依次开启enable_ime、禁用硬件加速、设置高dpi为“应用程序”、安装魔改版imesupport插件,并关闭搜狗“高级文字服务”。

根本问题不是输入法“不听话”,而是 Sublime Text 没把真实光标坐标传给它——尤其用搜狗、QQ 这类第三方输入法时,必须手动打通通信链路,否则候选框必然飞到左上角或副屏。
必须开启 enable_ime(ST4 build 4126+ 才有效)
这是整个修复链条的起点。没开它,Sublime 压根不向 Windows IMM32 接口上报光标位置、焦点状态和 DPI 缩放因子,输入法连“该往哪画框”都不知道。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 如果这行不是最后一行,末尾必须加英文逗号
- 保存后,**必须彻底退出所有
subl.exe进程**:右键托盘图标选 Exit,或进任务管理器杀干净——仅关闭窗口或 Reload Settings 完全无效
关掉 hardware_acceleration 并设高 DPI 模式为“应用程序”
GPU 渲染 + 系统虚拟缩放(如 125%)会让 Sublime 报告的坐标被错误放大,而输入法仍按原始像素定位,偏移几十像素是常态。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false) - 右键 Sublime 快捷方式 → 属性 → 兼容性 → 更改高 DPI 设置 → 勾选“替代高 DPI 缩放行为”,下拉选择 应用程序
- 删掉已废弃配置项,比如
"gpu_window_buffer": true,它们会干扰新渲染逻辑
装魔改版 IMESupport 插件(别用 Package Control 装的原版)
Package Control 里搜到的 IMESupport 是 ST3 时代的旧版,对 ST4 + Win10/11 + 高分屏完全失效。真正起效的是社区重写的增强分支,它做了 DPI 缩放补偿和多屏光标跟踪。
- 先手动卸载旧版:打开
Preferences → Browse Packages,删掉Packages/IMESupport文件夹 - 从 GitHub 下载活跃维护的魔改版(如 lyfeyaj 或 zcodes 的仓库),解压后重命名文件夹为
IMESupport - 把整个文件夹拖进
Packages目录(路径应为Packages/IMESupport/ime_support.py存在) - 重启 Sublime,插件自动生效;无需额外配置,但前提是
enable_ime和hardware_acceleration已正确设置
搜狗输入法必须关掉“高级文字服务”
这不是 Sublime 的锅,是搜狗主动绕过系统 IMM32 接口,直接 hook 文本框,和 Sublime 的轻量输入流严重不兼容。
- 右键搜狗状态栏图标 → 设置属性 → 高级标签页
- 取消勾选:使用高级文字服务(推荐) 和 允许在非标准编辑框中输入
- 改用基础模式后,搜狗才会走系统标准 IME 通道,才能接收 Sublime 经
enable_ime吐出的坐标
最容易被跳过的动作,是杀干净 subl.exe 进程——只要后台还剩一个,enable_ime 就不会加载,整套修复就卡死在第一步。其他步骤再全,也白搭。











