必须设"enable_ime": true,否则无法启用Windows原生IMM32接口;需在用户设置中添加该配置并加逗号,保存后彻底退出所有subl.exe进程再重启。

必须设 enable_ime: true 才能启用 Windows 原生 IME 支持
Sublime Text 4 build 4126+ 才真正支持 Windows IMM32 接口,但默认关闭。不开 enable_ime,编辑器根本不会向微软拼音、搜狗等输入法上报光标坐标、焦点状态和 DPI 缩放因子——候选框飞到左上角或副屏是必然结果,不是偶发 bug。
操作很简单:
- 打开 Preferences → Settings,在右侧用户设置 JSON 中添加:
"enable_ime": true - 如果这行不是最后一行,末尾必须加英文逗号
- 保存后,**必须彻底退出所有
subl.exe进程**(任务管理器里杀干净),再重启 —— 关窗口、Reload Window 或托盘 Exit 都无效
关掉 hardware_acceleration 并配对高 DPI 兼容模式
GPU 渲染(OpenGL)会让 Sublime 报告的光标坐标被高 DPI 缩放放大(比如 125% 下放大 1.25 倍),而输入法仍按原始像素定位,结果偏移几十像素甚至跳到另一块屏幕。
单关硬件加速或单设 DPI 模式都不够,必须配对生效:
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false) - 右键 Sublime 快捷方式 → “属性” → “兼容性” → “更改高 DPI 设置” → 勾选“替代高 DPI 缩放行为”,下拉选“应用程序”
- 顺手删掉已废弃配置,如
"gpu_window_buffer": true,它们会干扰新渲染逻辑
别装 Package Control 里的原版 IMESupport,要魔改分支
Package Control 搜索安装的 IMESupport 是 ST3 时代的老版本,对 ST4 + Win10/11 + 高分屏完全失效。它没做 DPI 补偿,也不跟踪多屏光标,装了等于没装。
真正起效的是社区重写的魔改版(如 zcodes/IMESupport):
- 卸载通过 Package Control 安装的旧版
IMESupport - 从 GitHub 下载 ZIP,解压后重命名文件夹为
IMESupport - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,打开插件目录 - 把整个
IMESupport文件夹拖进去(路径应为Packages/IMESupport/ime_support.py存在) - 重启 Sublime,无需额外配置
微软拼音必须关掉“嵌入式候选窗口”
微软拼音默认开启“嵌入式候选窗口”,它试图把候选框直接画进 Sublime 的文本渲染层,但 Sublime 不提供标准接口,结果就是位置错乱、点击失焦、上屏文字插入错误位置。
设置路径:
- 右键任务栏微软拼音图标 → “设置” → “常规” → “候选窗口”
- 取消勾选“使用嵌入式候选窗口”
- 勾选“在应用程序上方显示候选窗口”
这个开关看似小,却是整套修复里最容易被跳过的一步;不关它,哪怕其他全对,候选框依然会卡位或闪烁。

















