必须设 enable_ime: true,否则所有后续操作都无效——这是 sublime text 4 build 4126+ 启用 windows 原生 imm32 接口的硬性开关;需配合 hardware_acceleration: "none"、高 dpi 兼容设置、魔改版 imesupport 插件及关闭微软拼音嵌入式候选窗口,并彻底退出 subl.exe 进程生效。

必须设 enable_ime: true,否则所有后续操作都无效——这是 Sublime Text 4 build 4126+ 启用 Windows 原生 IMM32 接口的硬性开关,不是可选项。
为什么 enable_ime 是绕不开的第一步
Sublime Text 4 自 build 4126 起才内置 IMM32 兼容层,但默认关闭。不开 enable_ime,编辑器压根不向微软拼音上报光标坐标、焦点状态和 DPI 缩放因子。输入法连“该往哪画候选框”都不知道,必然飞到左上角或副屏。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 若该行不是最后一行,末尾必须加英文逗号
- 保存后,必须彻底退出:右键托盘图标选 Exit,或在任务管理器中杀掉所有
subl.exe进程——仅关闭窗口或执行Reload Window完全无效
hardware_acceleration 和高 DPI 兼容模式必须配对生效
OpenGL 渲染 + 系统虚拟缩放(如 125%)会让 Sublime 报告的坐标被错误放大,而输入法仍按原始像素定位,偏移几十像素是常态。单关硬件加速或单设 DPI 模式,都不解决问题。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false) - 右键 Sublime 快捷方式 → “属性” → “兼容性” → “更改高 DPI 设置” → 勾选“替代高 DPI 缩放行为”,下拉选“应用程序”
- 顺手删掉已废弃的旧配置,如
"gpu_window_buffer": true,它们会干扰新渲染逻辑
别装 Package Control 里的原版 IMESupport,要魔改版
Package Control 搜索安装的 IMESupport 是 ST3 时代的原版,对 ST4 + Win10/11 + 高分屏完全失效。真正起效的是社区重写的魔改分支(如 zcodes/IMESupport),它做了 DPI 缩放补偿和多屏光标跟踪。
- 卸载通过 Package Control 安装的旧版
IMESupport(否则可能冲突) - 从 GitHub 下载魔改版 ZIP(例如 zcodes/IMESupport),解压后重命名文件夹为
IMESupport - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,打开插件目录 - 把整个
IMESupport文件夹拖进该目录(路径应为Packages/IMESupport/ime_support.py存在) - 重启 Sublime,无需额外配置,插件自动生效
微软拼音必须关掉“嵌入式候选窗口”
微软拼音默认开启“嵌入式候选窗口”,它试图把候选框直接画进 Sublime 的文本渲染层里,但 Sublime 并不提供标准接口,结果就是位置错乱、点击失焦、上屏文字插入错误位置。
- 右键任务栏微软拼音图标 → “设置” → “常规” → “候选窗口”
- 取消勾选“使用嵌入式候选窗口”
- 勾选“在应用程序上方显示候选窗口”
最易被忽略的点:所有配置修改后,subl.exe 进程必须彻底清空——哪怕只残留一个后台进程,enable_ime 就不会加载,其他设置也形同虚设。这不是缓存问题,是 IMM32 接口初始化只发生在主进程启动时。











