必须开启enable_ime并关闭hardware_acceleration、设置高DPI兼容模式、安装魔改版IMESupport插件、关闭搜狗高级模式,且每次修改后彻底重启Sublime。

Sublime 中文输入法候选框不跟随光标,根本不是“显示被挡住”,而是它压根没把光标真实坐标传给 Windows 输入法(IME)——尤其在高 DPI 屏幕、多显示器或用搜狗/QQ 输入法时,坐标偏移几十像素,候选框直接飞到左上角或副屏。
必须开启 enable_ime(ST4 4126+ 用户第一动作)
Sublime Text 4 自 build 4126 起内置了 IME 支持,但默认关闭。不启用这个,后面所有配置都只是打补丁。
- 打开
Preferences → Settings,在右侧用户设置中添加:"enable_ime": true - 保存后,必须彻底退出所有
subl.exe进程(任务管理器里杀干净,或右键托盘图标选 Exit),再重新启动 - 该选项激活 Windows 原生 IMM32 接口,让 Sublime 正确响应焦点、光标位置变更和编码状态;没开它,插件和渲染设置基本白配
关掉 hardware_acceleration 并设高 DPI 兼容模式(高分屏用户绕不开)
GPU 渲染 + 系统虚拟缩放(如 125% DPI)会让 Sublime 报告的坐标被放大,而输入法按原始像素定位,结果必然错位。
- 在用户设置中加:
"hardware_acceleration": "none" - 右键 Sublime 快捷方式 → 属性 → 兼容性 → “更改高 DPI 设置” → 勾选“替代高 DPI 缩放行为”,下拉选“应用程序”
- 两步缺一不可:只关硬件加速,高分屏下仍偏移;只设 DPI 模式,GPU 可能卡住 IME 消息循环
- 顺手删掉已废弃的配置项,比如
"gpu_window_buffer": true,它会干扰新渲染逻辑
装魔改版 IMESupport 插件(别信 Package Control 里的原版)
Package Control 里搜到的 IMESupport 是老版本,对 ST4 + Win10/11 高分屏完全失效。真正起效的是社区重写的增强分支,它重写了 DPI 缩放补偿和多屏光标跟踪逻辑。
- 从 GitHub 下载魔改版源码:https://www.php.cn/link/10381a708c9f1f122da0db7005c0f452
-
Preferences → Browse Packages打开插件目录,新建文件夹IMESupport,把解压出的所有文件(含ime_support.py和sublime_plugin.py)复制进去 - 重启 Sublime,无需额外配置,自动生效;如果之前装过旧版,先卸载再放新包,避免冲突
搜狗输入法必须关“高级模式”(第三方输入法高频雷区)
搜狗新版默认开启“高级文字服务”,会绕过系统 IMM32 接口,直接 hook 文本框,和 Sublime 的轻量输入流严重不兼容——这不是 Sublime 的锅,是搜狗主动放弃兼容。
- 右键搜狗状态栏图标 → “设置属性” → “高级”标签页
- 取消勾选:
"使用高级文字服务(推荐)"、"允许在非标准编辑框中输入"(此项最常导致失焦和乱码) - 勾选:
"兼容模式(适用于老旧程序)" - 临时验证:切到微软拼音,打开“键盘选项” → 开启
"使用以前版本的微软拼音输入法",基本秒恢复
最容易被忽略的点是:所有配置改完后,必须杀掉全部 subl.exe 进程再重启。只改 settings.json 不退出进程,等于没做;只关 GPU 不设 DPI 兼容,高分屏照样飘;装了原版 IMESupport 还以为修好了,其实根本没生效。











