Sublime90%的快捷键失效是按键未传入编辑器所致,需先用sublime.log_input(True)验证信号是否抵达,再排查系统/输入法/驱动拦截、插件覆盖、JSON语法错误及内核硬编码键(如Esc、Cmd+B)等根本原因。

先确认按键是否进了 Sublime
90% 的“快捷键失效”根本不是插件问题,而是按键压根没传进编辑器。别急着删插件,先验证信号是否抵达:
- 按
Ctrl+`打开控制台,输入sublime.log_input(True)回车 - 再按你怀疑失效的组合键(比如
Ctrl+/、Esc) - 如果控制台完全没输出,说明被系统/输入法/显卡驱动截断了——Windows 查 NVIDIA 控制面板热键、搜狗拼音的
Ctrl+Shift;macOS 去「系统设置 → 键盘 → 快捷键」关掉 Spotlight 的Cmd+Space和输入源的Cmd+Space
查插件 Default.sublime-keymap 是否覆盖原生绑定
Sublime 加载顺序是:Default → 插件自带的 Default.sublime-keymap → User.sublime-keymap,后加载者静默覆盖前一个,不报错也不提示。
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开文件 - 在左侧(Default)搜索你想用的组合,比如
"ctrl+d",确认它原本绑定的是find_under_expand - 在右侧(User)和所有插件目录(
Packages/Vintage/、Packages/Emmet/等)里全局搜索同一"keys"字段 - 常见高危插件:Vintage(常绑
Esc、i)、Emmet(常绑Ctrl+E)、Origami(常绑Ctrl+K类组合)
User.sublime-keymap 写错 JSON 就等于没写
这个文件是纯 JSON 数组,语法错一点整份配置就静默失效,右下角可能只闪一下红字提示,极易忽略。
- 所有键名和字符串值必须用英文双引号,
"keys"不是keys - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - 不支持
//注释,想禁用某条绑定,直接删整行,或改成无效命令:"command": "not_a_real_command" - 常见低级错误:
toggle_comment写成toggle_comments(多加 s)、用中文引号、keys字段漏方括号
Esc、Cmd+B 这类键根本不在 Key Bindings 管辖范围内
关闭命令面板、搜索框、替换栏这些行为是 Sublime 内核硬编码的,不走任何 .sublime-keymap 流程。
- 你在
User.sublime-keymap里加{"keys": ["escape"], "command": "hide_panel"}不仅无效,还会破坏原生逻辑——比如按Esc后面板卡住不隐藏 -
Cmd+B在 macOS 上常被 Finder 或 Dock 的系统级快捷键占用,不是插件问题,路径是:「系统设置 → 键盘 → 快捷键 → 应用快捷键」,搜索Cmd+B,删掉 Finder 或 Dock 的条目即可 - 若
Esc失效且subl --safe-mode下恢复,说明是插件劫持:Vintage 需进Package Settings → Vintage → Settings设"exit_insert_mode_on_escape": false;Origami 关掉close_on_escape
Default.sublime-keymap 文件从不自动出现在你的编辑界面里,也不会在 Preferences > Key Bindings 中显示,但它实实在在参与加载顺序——你得手动进 Packages/插件名/ 目录翻找,否则永远不知道哪条规则正在悄悄覆盖你。

















