必须开启enable_ime、关闭hardware_acceleration并安装魔改版IMESupport插件,三者缺一不可;否则候选框仍会偏移至左上角或副屏,因ST4 build 4126+需通过enable_ime启用IMM32接口,配合禁用GPU渲染与高DPI兼容设置才能正确同步光标坐标。

直接开 enable_ime,关 hardware_acceleration,装魔改版 IMESupport——三者缺一不可。只做其中一两步,候选框大概率还在左上角或副屏乱飞。
必须设 enable_ime:ST4 build 4126+ 的硬性前提
Sublime Text 4 自 build 4126 起才真正支持 Windows 原生 IMM32 接口,但默认关闭。不开它,编辑器根本不会向输入法上报光标坐标、焦点状态和 DPI 缩放因子,输入法只能瞎猜位置。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 若该行不是最后一行,末尾必须加英文逗号
- 保存后必须彻底退出:右键托盘图标选 Exit,或在任务管理器中杀掉所有
subl.exe进程——仅关闭窗口或Reload Window无效
hardware_acceleration 必须设为 "none"(不是 false)
OpenGL 渲染 + 系统虚拟缩放(如 125% DPI)会让 Sublime 报告的坐标被错误放大,而输入法仍按原始像素定位,偏移几十像素是常态。单关 gpu_window_buffer 或只设 DPI 兼容模式 都不解决问题。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是布尔值) - 右键 Sublime 快捷方式 → 属性 → 兼容性 → 更改高 DPI 设置 → 勾选“替代高 DPI 缩放行为”,下拉选择“应用程序”
- 这两步必须配对生效;否则高分屏或多屏下,光标一动,候选框就跳
别装 Package Control 里的原版 IMESupport
Package Control 搜索安装的 IMESupport 是 ST3 时代的原版,对 ST4 + Win10/11 + 高分屏完全失效。真正起效的是社区重写的魔改分支(如 zcodes/IMESupport),它做了 DPI 缩放补偿和多屏光标跟踪。
- 卸载通过 Package Control 安装的旧版
IMESupport(否则可能冲突) - 从 GitHub 下载魔改版 ZIP(如 https://www.php.cn/link/9255e8df7dc6a615445f42c0fd94587a),解压后重命名文件夹为
IMESupport - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,打开插件目录 - 将整个
IMESupport文件夹拖进该目录(路径应为Packages/IMESupport/ime_support.py等文件存在) - 重启 Sublime,无需额外配置,插件自动生效
搜狗/QQ 输入法要关“高级文字服务”
搜狗新版默认开启“高级文字服务”,会绕过系统 IMM32 接口,直接 hook 文本框,和 Sublime 的轻量输入流严重不兼容。即使前面三步全对,候选框仍可能卡死或错位。
- 右键搜狗状态栏图标 → “设置属性” → “高级”标签页
- 取消勾选:
使用高级文字服务(推荐)和允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 临时验证:切到微软拼音,打开“键盘选项” → 开启
使用以前版本的微软拼音输入法,基本秒恢复
最容易被忽略的是:每次改完设置都得杀干净 subl.exe 进程再启动,任何“热加载”或“窗口重开”都不算数。还有,Linux 用户必须显式传入 GTK_IM_MODULE、QT_IM_MODULE 和 XMODIFIERS,Wayland 下还得加 GDK_BACKEND=x11——这些环境变量不生效,前面所有配置等于白配。











