Sublime Text 输入法跟随光标需同时满足四点:启用 enable_ime、禁用 hardware_acceleration、使用魔改版 IMESupport 插件、关闭搜狗“高级文字服务”;任一缺失均导致候选框错位。

Sublime Text 输入法不跟随光标,不是插件没装,而是 enable_ime 没开、hardware_acceleration 没关、或者搜狗在“高级文字服务”模式下主动绕过了系统接口——三者缺一,候选框就必然飞到左上角或副屏。
必须设 enable_ime: true(ST4 build 4126+ 硬性前提)
ST4 自 build 4126 起内置 IMM32 支持,但默认关闭。不开 enable_ime,Sublime 就不向 Windows 上报光标坐标、DPI 缩放因子和焦点状态,输入法连“该画在哪”都不知道。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 若该行不是最后一行,末尾必须加英文逗号
- 保存后必须彻底退出所有
subl.exe进程(任务管理器里杀干净),仅关闭窗口或Reload Window无效
必须设 hardware_acceleration: "none"(GPU 渲染会破坏坐标同步)
OpenGL 渲染路径会让 Sublime 报告的像素坐标被高 DPI 缩放错误放大,而输入法仍按原始分辨率定位,结果就是候选框偏移几十像素,甚至跳到副屏左上角。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false或"off") - 右键 Sublime 快捷方式 → 属性 → 兼容性 → 更改高 DPI 设置 → 勾选“替代高 DPI 缩放行为”,下拉选择“应用程序”
- 顺手删掉已废弃配置如
"gpu_window_buffer": true,它们会干扰新渲染逻辑
别装 Package Control 里的原版 IMESupport(它对 ST4 + 高分屏完全失效)
Package Control 搜索安装的 IMESupport 是 ST3 时代的旧版,没有 DPI 补偿、无多屏光标跟踪,装了也白装。真正起效的是社区魔改分支(如 zcodes/IMESupport),它重写了坐标映射逻辑。
- 卸载通过 Package Control 安装的旧版
IMESupport - 从 GitHub 下载魔改版 ZIP(例如 zcodes/IMESupport),解压后重命名文件夹为
IMESupport - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,打开插件目录,把整个IMESupport文件夹拖进去(确保路径下有ime_support.py) - 重启 Sublime,插件自动生效,无需额外配置
搜狗输入法必须关掉“高级文字服务”(它主动绕过 IMM32)
搜狗新版默认开启“高级文字服务”,它 hook 文本框而非走系统 IMM32 接口,和 Sublime 的轻量输入流天然冲突。这不是 Sublime 的锅,是搜狗放弃兼容。
- 右键搜狗状态栏图标 → 设置属性 → 高级标签页
- 取消勾选:
使用高级文字服务(推荐)和允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 改完立即生效,无需重启 Sublime 或输入法
真正难的不是让它“不跟随”,而是让它稳定“跟随”:enable_ime 漏掉、subl.exe 没杀干净、装了原版 IMESupport、或者搜狗开着高级服务——任一环节出错,都会卡在“看似设置了却没用”的状态里。

















