快捷键没反应,先确认是否进入Sublime:运行sublime.log_input(True)无输出即被系统/输入法/驱动拦截;有输出则用log_commands查实际执行命令,再按加载顺序排查Default、插件、User绑定冲突。

快捷键没反应?先确认它是否进了 Sublime
90% 的“冲突”根本不是配置问题,而是按键压根没传进编辑器。按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按你想查的组合(比如 Ctrl+/ 或 Cmd+Shift+P)。如果控制台完全没输出,说明被系统/输入法/显卡驱动截断了。
常见拦截点:
- Windows:NVIDIA 控制面板 → 「热键」、Intel Graphics Command Center → 「快捷键」里启用了
Ctrl+Alt+方向键或Ctrl+Shift类组合 - 输入法:搜狗、QQ 拼音默认占用
Ctrl+Space和Ctrl+Shift,切英文输入法再试 - macOS:系统设置 → 键盘 → 快捷键 → 「Spotlight」或 「输入源」是否占用了
Cmd+Space;未勾选「使用 F1、F2 等键作为标准功能键」时,Esc可能被键盘固件吞掉
按键进了 Sublime 但功能不对?查实际执行了哪个命令
如果 sublime.log_input(True) 有输出(如 key evt: ctrl+k),再输 sublime.log_commands(True),再按同一组合键。控制台会显示真正执行的命令,比如 command: emmet_expand_abbreviation——这说明不是没绑定,而是被插件抢了。
Sublime 加载键绑定的顺序是:Default → 插件自带的 Default.sublime-keymap → User.sublime-keymap。后加载的静默覆盖前一个,不报错也不提示。
排查建议:
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开两个文件 - 在左侧
Default中搜索目标组合(如"ctrl+d"),确认它原本应触发什么命令(如duplicate_line) - 在右侧
User和所有插件目录(Packages/Vintage/、Packages/Emmet/等)中全局搜索相同"keys"字段 - 高危插件优先排查:
Vintage、Emmet、Origami、GitGutter
User.sublime-keymap 写错 JSON 就等于没写
User.sublime-keymap 是纯 JSON 数组,语法错一点整份配置就被 Sublime 静默忽略——右下角可能只闪一下红字错误提示,稍不注意就错过。
必须遵守这些规则:
- 所有键名和字符串值必须用英文双引号包裹,例如
"keys"不是keys - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - 不支持
//注释,想禁用某条绑定,直接删整行,或改成无效命令:"command": "not_a_real_command" - 保存(
Ctrl+S)后立即生效,不用重启,但必须确保没其他插件在更靠后的位置又绑了一次
Esc、Cmd+B 这类键根本不在 Key Bindings 管辖范围内
关闭搜索框、命令面板、替换面板这些行为是 Sublime 内核硬编码的,你往 User.sublime-keymap 里加 {"keys": ["escape"], "command": "xxx"} 不仅没用,还会破坏原生逻辑——比如按 Esc 后搜索框不关闭,面板也不隐藏,UI 就卡在那里。
macOS 下 Cmd+B 常被 Finder 或 Dock 的系统级快捷键占用,这不是插件问题,而是“应用无关快捷键”行为。排查路径是:系统设置 → 键盘 → 快捷键 → 应用快捷键,搜索 Cmd+B,删掉 Finder 或 Dock 的条目即可。
真正容易被忽略的是 context 条件——有些插件快捷键只在特定文件类型或有选中文本时才生效,表面看没冲突,实则条件不满足就“失效”。这类问题没法靠改 User.sublime-keymap 解决,得去对应插件的 Settings 里关掉 context 限制或调整 scope。


















