sublime text 中文输入法悬浮提示依赖系统输入法,windows需启用enable_ime并禁用gpu渲染及设置高dpi兼容性,macos需调整输入源顺序、禁用长按重复、收紧自动补全策略,三者缺一不可。

Sublime Text 本身不提供“中文输入法悬浮提示”功能——它不生成候选词气泡、不接管输入法 UI,所谓“悬浮提示”其实是 Windows/macOS 系统输入法(如微软拼音、搜狗、Rime、Apple Pinyin)在获得焦点后主动渲染的候选框。能否正常显示、位置是否准确、是否被遮挡,取决于 Sublime 是否正确上报光标坐标与焦点状态,以及渲染层是否与系统 DPI / GPU 行为兼容。
Windows 下候选框乱飞或不弹出:必须开 enable_ime 并禁用 GPU 渲染
ST4 build 4126+ 才真正支持 Windows IMM32 输入法接口,但默认关闭 enable_ime。不开它,编辑器根本不向系统报告光标位置和编码模式,候选框压根不会出现。
- 打开
Preferences → Settings,在右侧用户设置 JSON 中添加:"enable_ime": true(注意末尾加英文逗号,若后面还有配置) - 同时必须设:
"hardware_acceleration": "none"(字符串"none",不是false) - 右键 Sublime 快捷方式 → 属性 → 兼容性 → 更改高 DPI 设置 → 勾选“替代高 DPI 缩放行为”,下拉选“应用程序”
- 每次修改后,必须彻底退出:任务管理器杀掉所有
subl.exe进程,再重启——仅关闭窗口或 Reload Settings 无效
macOS 下候选框被 auto_complete 遮盖:要调低输入法优先级 + 限制补全触发范围
macOS 按输入源列表顺序调用输入法,靠前的会抢占焦点;而 Sublime 默认在任意输入状态下都尝试补全,和中文输入的“预编辑状态”冲突,导致候选框刚弹出就被补全面板盖住。
- 系统设置 → 键盘 → 输入源 → 把中文输入法(如简体拼音)拖到列表最底部
- 终端执行:
defaults write com.sublimetext.4 ApplePressAndHoldEnabled -bool false,然后重启 Sublime - 在用户设置中收紧补全策略:
"auto_complete_selector": "source, text.html - source.embedded",排除纯文本和 HTML 内联代码块 - 用
"auto_complete_triggers"显式指定只在.或后触发,避免中文输入中途误触
候选框位置偏移几十像素:DPI 缩放与渲染未对齐
高分屏下常见问题:GPU 渲染 + 系统 DPI 缩放(如 125%)导致 Sublime 报告的坐标被放大,而输入法仍按原始像素定位,结果候选框跳到副屏或偏移严重。
- 确认已设
"hardware_acceleration": "none"和快捷方式 DPI 设置为“应用程序” - 删除过时配置项,如
"gpu_window_buffer": true(新版本已废弃,反而干扰) - 不要依赖
"dpi_scale"手动缩放——它只影响界面字体,不影响输入法坐标计算
真正起作用的就三件事:enable_ime 开关、GPU 渲染禁用、DPI 缩放行为对齐。少一个,候选框就不可靠;改完不杀进程重启,等于没改。











