必须手动安装魔改版IMESupport并配置enable_ime为true、hardware_acceleration为"none"、关闭微软拼音嵌入式候选窗口,四者缺一不可。

必须手动安装魔改版 IMESupport,Package Control 安装无效
Package Control 搜索安装的 IMESupport 是 ST3 时代的原版,对 ST4 build 4126+(当前主流版本)完全不生效——它不会加载、不响应光标移动、也不做 DPI 补偿。这不是配置问题,是插件根本没跑起来。
- 卸载已通过 Package Control 安装的旧版
IMESupport(路径如Packages/IMESupport/存在就删掉) - 从 GitHub 下载社区魔改分支(推荐 zcodes/IMESupport),解压后重命名文件夹为
IMESupport - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车打开插件目录,把整个IMESupport文件夹拖进去(确保Packages/IMESupport/ime_support.py可见) - 重启 Sublime,插件自动激活,无需额外配置或命令调用
enable_ime 必须为 true,且重启前要杀干净 subl.exe
enable_ime 不是可选项,是 ST4 build 4126+ 启用 Windows 原生 IMM32 接口的硬性开关。不开它,IMESupport 插件连光标坐标都拿不到,所有后续修复都是空谈。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 如果这行不是最后一行,末尾必须加英文逗号
- 保存后,**不能只关窗口或执行 Reload Window**:必须右键托盘图标选 Exit,或进任务管理器杀掉所有
subl.exe进程 - 验证是否生效:重启后,在编辑区点击任意位置,微软拼音候选框应能大致对齐光标(哪怕还有偏移,说明底层通信已通)
hardware_acceleration 设为 "none" 才能对齐坐标系
GPU 渲染(OpenGL)会让 Sublime 报告的光标坐标被高 DPI 缩放放大,而输入法仍按原始像素定位——结果就是候选框偏移几十像素,甚至跳到副屏。只关插件或只开 enable_ime 都压不住这个问题。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false或"off") - 右键 Sublime 快捷方式 → “属性” → “兼容性” → “更改高 DPI 设置” → 勾选“替代高 DPI 缩放行为”,下拉选“应用程序”
- 顺手删掉已废弃的旧配置,比如
"gpu_window_buffer": true,它们会干扰新渲染逻辑 - 这两步必须同时生效;单做任一操作,高分屏或多屏下仍大概率错位
微软拼音要关“嵌入式候选窗口”
微软拼音默认开启“嵌入式候选窗口”,试图把候选框直接画进 Sublime 的文本渲染层里。但 Sublime 并不提供标准接口,结果就是候选框位置错乱、点击失焦、上屏文字插入错误位置。
- 右键任务栏微软拼音图标 → “设置” → “常规” → “候选窗”
- 取消勾选“使用嵌入式候选窗口”
- 勾选“在应用程序上方显示候选窗口”
- 该设置无需重启输入法,但需重启 Sublime 才能与插件逻辑协同生效
真正起效的链路很窄:enable_ime 打开 IMM32 通道 → hardware_acceleration: "none" 和 DPI 兼容模式对齐坐标系 → 魔改 IMESupport 做 DPI 补偿和多屏跟踪 → 输入法端关闭嵌入式模式。四个条件缺一不可,漏掉任何一个,你看到的都是“好像修了一半”的假象。











