快捷键失灵主因是按键未进入sublime:先执行sublime.log_input(true),无输出即被系统/输入法/驱动截断;有输出则排查插件覆盖、json语法错误或加载顺序问题。

Sublime Text 里快捷键失灵,八成不是编辑器坏了,而是输入法或系统把按键截走了——你按的组合键根本没进 Sublime。
怎么确认按键有没有进 Sublime
这是所有排查的第一步,跳过它等于在黑盒里调参。按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按你想查的组合键(比如 Ctrl+/、Cmd+Shift+P 或 Backspace)。
- 控制台**完全没输出** → 按键被系统/输入法/显卡驱动截断,Sublime 压根没收到
- 有
key evt: ctrl+shift+p这类输出 → 按键进了 Sublime,问题出在内部绑定或插件覆盖
常见拦截点:
-
macOS:系统设置 → 键盘 → 快捷键 → 「输入源」里默认启用了
Cmd+Space或Cmd+Shift+P切输入法;「Spotlight」也可能抢走Cmd+Space -
Windows:NVIDIA 控制面板 → 「热键」、Intel Graphics Command Center → 「快捷键」常劫持
Ctrl+Alt+方向键或Ctrl+Shift类组合 -
搜狗/QQ 拼音:默认把
Ctrl+Shift+P当中英文切换、Backspace当删除候选词,切到系统自带「简体中文-拼音」测试,若恢复即锁定是输入法问题
输入法劫持后怎么改
不能只靠换输入法临时绕开,得从根上关掉冲突绑定。
- 搜狗用户必须关掉:右键任务栏图标 → 设置属性 → 高级 → 取消勾选「使用高级文字服务」和「允许在非标准编辑框中输入」;「兼容模式」开关对 Sublime 无效
-
macOS 用户:系统设置 → 键盘 → 快捷键 → 输入源 → 找到「选择上一个输入法」,禁用或重设为其他组合(比如
Ctrl+~) - Windows 用户:控制面板 → 语言 → 首选项 → 键盘 → 切换输入法热键 → 改成「不分配」或自定义为非冲突组合
改完别忘了彻底退出输入法进程(右键图标 → 退出),再重启 Sublime,否则旧配置可能还在内存里。
User.sublime-keymap 覆盖无效的真相
很多人以为在 Preferences → Key Bindings – User 里加一条 {"keys": ["ctrl+/"], "command": "toggle_comment"} 就能救回注释功能,结果没用——因为这条规则根本没加载成功,或者刚写完就被别的插件盖掉了。
-
User.sublime-keymap是纯 JSON 数组,一个中文逗号、多一个英文逗号、漏引号,整份配置就静默失效(右下角红字一闪而过,极易忽略) - Sublime 加载顺序是:
Default→ 插件自带的Default.sublime-keymap(如 Vintage、Emmet)→User;后加载的直接覆盖前一个,不报错也不提示 - 想确认谁在管
Ctrl+/,得打开Preferences → Key Bindings,左右并排看:Default里搜它原本绑的是toggle_comment,再在User和所有插件目录(Packages/Vintage/、Packages/Emmet/)里全局搜索"ctrl+/"
真正有效的修复方式是:删掉所有插件里重复定义的 ctrl+/,只在 User 里留一条干净、语法正确的规则,并确保保存时没混入空格或 BOM。
多光标 + 中文输入失效的硬性条件
不是快捷键冲突,是 Sublime 多光标状态下根本没把每个光标坐标同步给输入法,导致候选框只跟第一个光标走,其余光标打字不上屏或乱飘。
-
"enable_ime": true必须在用户设置里显式开启,否则 IMM32 通道关闭,单光标都难保 -
"hardware_acceleration": "none"必须设为none,GPU 渲染下多光标坐标计算会严重失真 - 禁用干扰插件:
Vintage(劫持Esc和焦点)、Origami(重绘面板但不更新 IME 句柄) - 避免在软换行(
"word_wrap": true)的长行里直接用Ctrl+Shift+L拆分,先手动换行再操作
这些配置改完必须彻底重启 Sublime 进程,仅 Reload Settings 不生效。最可靠的验证方式是启动后立刻运行 sublime.log_input(True),再 Ctrl+Click 加第二个光标——如果控制台仍有输出,说明配置已起效;若无输出,问题仍在系统层。











