必须设 enable_ime: true 才能启用坐标同步,否则输入法候选框会飞到左上角或副屏;还需关闭 hardware_acceleration、手动安装 IMESupport 插件,并在 Linux 下正确设置环境变量。

必须设 enable_ime: true 才能启用坐标同步
Sublime Text 4 build 4126+ 内置了 Windows 原生 IMM32 接口,但默认关闭。不加这行,编辑器根本不会向输入法上报光标位置、焦点状态和 DPI 缩放因子——候选框飞到左上角或副屏是必然结果,不是“偶尔出错”。
操作要点:
• 打开 Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true
• 若该行不是最后一行,末尾必须加英文逗号
• 保存后必须彻底退出所有 subl.exe 进程(任务管理器里杀干净),仅关闭窗口或 Reload Window 无效
关掉 hardware_acceleration 防止坐标计算错乱
GPU 渲染会让 Sublime 报给输入法的坐标被放大(尤其在高 DPI 或多显示器环境下),而输入法仍按原始像素定位,导致候选框偏移几十像素甚至跳到副屏。
实操建议:
• 在用户设置中添加:"hardware_acceleration": "none"(注意是字符串 "none",不是 false 或 "off")
• macOS 用户若用 Metal 后端,额外加:"gpu_window_buffer": false
• Linux 用户同样需要该配置,且需配合环境变量生效
手动装 IMESupport 插件,Package Control 安装大概率失效
GitHub 上原版 IMESupport(chikatoike 维护)不支持 Package Control 自动加载,插件逻辑压根不会运行。很多人装完没效果,问题就出在这。
正确步骤:
• 按 Ctrl+Shift+P → 输入 Preferences: Browse Packages → 回车打开目录
• 去 https://github.com/chikatoike/IMESupport 下载 ZIP,解压后重命名文件夹为 IMESupport(去掉 -master)
• 整个文件夹拖进 Packages 目录
• 彻底退出并重启 Sublime,否则插件不加载
Linux 用户必须显式传入输入法环境变量
Sublime 在 Linux 下启动时不会自动继承输入法上下文,只设 GTK_IM_MODULE 不够,fcitx5/ibus 等服务根本连不上。
关键动作:
• 终端启动:运行 env GTK_IM_MODULE=fcitx5 QT_IM_MODULE=fcitx5 XMODIFIERS=@im=fcitx5 sublime_text
• Wayland 会话下必须加 GDK_BACKEND=x11,否则握手失败,“能切不能输”
• 写进桌面文件时,Exec= 行要完整写成:Exec=sh -c "GDK_BACKEND=x11 env GTK_IM_MODULE=fcitx5 QT_IM_MODULE=fcitx5 XMODIFIERS=@im=fcitx5 sublime_text %F"
• 改完必须杀掉所有 sublime_text 进程再重试,环境变量不热加载
真正难的不是让输入法“不跟随”,而是让它稳定“跟随”——漏掉 enable_ime、少杀一个进程、装了旧版 IMESupport、或者 Linux 下没传对环境变量,都会卡在“看似设置了却没用”的状态里。











