必须同时开启enable_ime、禁用hardware_acceleration、卸载原版imesupport并安装魔改版、关闭搜狗高级文字服务,才能实现分屏下中文输入法精准跟随光标;任一缺失均导致候选框漂移。

分屏时中文输入法不跟随光标,本质是 Sublime 没把当前活动面板的准确坐标同步给输入法——不是插件没装,而是 enable_ime 关着、hardware_acceleration 没关、或者多屏 DPI 不一致导致坐标错乱。
必须确保 enable_ime 为 true(ST4 build 4126+ 硬性前提)
Sublime Text 4 自 build 4126 起才真正支持多面板光标上报,但前提是显式开启 IMM32 接口。不开 enable_ime,编辑器连“哪个面板有焦点”都不告诉系统,输入法只能猜,结果就是候选框卡在主屏左上角或副屏角落。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true - 若该行不是最后一行,末尾必须加英文逗号
- 保存后,必须彻底退出所有
subl.exe进程(任务管理器里杀干净),再重启 —— 仅关闭窗口无效
hardware_acceleration 必须设为 "none"(GPU 渲染会放大坐标)
分屏 + 高 DPI(比如主屏 125%、副屏 100%)下,OpenGL 渲染会让 Sublime 报告的光标坐标被错误缩放,而输入法仍按原始像素定位。结果:你在右屏写代码,候选框飞到左屏中间;切到左屏,候选框又跳回右屏顶部。
- 在用户设置中添加:
"hardware_acceleration": "none"(注意是字符串"none",不是false) - 顺手删掉已废弃的
"gpu_window_buffer": true等旧配置,它们会干扰新渲染逻辑 - 如果主副屏缩放比例不同,快捷方式目标末尾加参数:
--multi-threaded
别信 Package Control 装的 IMESupport(原版对分屏完全失效)
Package Control 安装的 IMESupport 是 ST3 时代的原版,它不处理多面板坐标映射,也不做 DPI 补偿。你装了等于没装,候选框依然只跟第一个光标走。
- 卸载通过 Package Control 安装的旧版
IMESupport - 从 GitHub 下载魔改版(如 zcodes/IMESupport),解压后重命名为
IMESupport(去掉-master) - 按
Ctrl+Shift+P→ 输入Preferences: Browse Packages→ 回车,将整个IMESupport文件夹拖入该目录(路径应为Packages/IMESupport/ime_support.py) - 重启 Sublime,插件自动生效,无需额外配置
搜狗输入法必须关掉“高级文字服务”(否则直接绕过 IMM32)
搜狗新版默认启用“高级文字服务”,它不走 Windows 原生 IMM32 接口,而是直接 hook 文本控件。Sublime 的轻量输入流和这种 hook 天然冲突——尤其分屏时,hook 只能捕获主窗口句柄,其余面板全失联。
- 右键搜狗状态栏图标 → “设置属性” → “高级”标签页
- 取消勾选:
使用高级文字服务(推荐)和允许在非标准编辑框中输入 - 勾选:
兼容模式(适用于老旧程序) - 改完立刻生效,无需重启 Sublime 或输入法
真正难的不是让分屏时“不跟随”,而是让它稳定“跟随”——漏掉 enable_ime、少杀一个 subl.exe、装了原版 IMESupport、或者搜狗高级服务开着,任意一个都会导致候选框在两个屏幕之间随机漂移。这些配置必须全部到位,缺一不可。











