确认按键是否进入sublime是排查前提:用sublime.log_input(true)验证,无输出说明被系统/输入法截断;有输出则用sublime.log_commands(true)查命令绑定,按加载顺序default→插件default→user排查覆盖及json语法错误。

快捷键在 Sublime Text 里“按了没反应”或“触发了别的命令”,90% 不是配置写错了,而是按键根本没进编辑器,或者被后加载的插件静默覆盖——sublime.log_input(True) 和 sublime.log_commands(True) 是唯一能穿透所有层级的诊断手段。
怎么确认按键是否真正进入 Sublime
这是所有排查的前提。跳过这步直接改 User.sublime-keymap,大概率白忙活。
- 按
Ctrl+`打开控制台,输入sublime.log_input(True)回车 - 再按你想查的组合键(如
Ctrl+/、Esc、Cmd+Shift+P) - 如果控制台**完全没输出**,说明按键被系统/输入法/显卡驱动截断了:
- Windows:检查 NVIDIA 控制面板 → 「热键」、Intel Graphics Command Center → 「快捷键」是否启用了
Ctrl+Alt+方向键或类似组合 - 中文输入法(搜狗、QQ 拼音)默认占用
Ctrl+Shift和Ctrl+Space,切到英文输入法再试 - macOS:系统设置 → 键盘 → 快捷键 → 「Spotlight」和「输入源」里是否占用了同名组合;未勾选「使用 F1、F2 等键作为标准功能键」时,
Esc可能被键盘固件吞掉
- Windows:检查 NVIDIA 控制面板 → 「热键」、Intel Graphics Command Center → 「快捷键」是否启用了
按键进了 Sublime,但没执行预期命令
此时控制台会输出类似 key evt: ctrl+b,接着要查它到底触发了什么命令。
- 在控制台中再输入
sublime.log_commands(True)回车 - 重按同一组合键,看是否出现
command: build或command: emmet_expand_abbreviation - 如果有输出但不是你想要的命令,说明绑定被覆盖了:
- Sublime 加载顺序是:
Default→ 插件的Default.sublime-keymap→User.sublime-keymap - 后加载者静默覆盖前一个,不报错也不提示
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开 Default 和 User 文件 - 在左侧 Default 中搜索目标组合(如
"ctrl+/"),确认原命令是toggle_comment - 在右侧 User 和所有插件目录(
Packages/Vintage/、Packages/Emmet/等)中全局搜索相同"keys"字段
- Sublime 加载顺序是:
User.sublime-keymap 写错 JSON 就等于没写
这个文件是纯 JSON 数组,语法错一点整份配置就被 Sublime 静默忽略——右下角红字错误提示一闪而过,极易错过。
- 所有键名和字符串值必须用英文双引号包裹:
"keys"不是keys,"toggle_comment"不是toggle_comments(多加s就失效) - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - 不支持
//或/* */注释;想临时禁用某条绑定,要么删整行,要么改成无效命令:"command": "not_a_real_command" - 保存后立即生效(
Ctrl+S),但若某个插件的Default.sublime-keymap里也有同keys且加载更晚,你的自定义仍会被盖掉
某些键根本不在 keymap 流程里
Esc 关搜索框、关命令面板、关替换栏,是 Sublime 内核硬编码行为,不走任何 .sublime-keymap 流程。
- 你在
User.sublime-keymap里加{"keys": ["escape"], "command": "hide_panel"}不仅无效,还会破坏原生逻辑(比如按Esc后面板卡住不隐藏) - 如果
Esc失效,先运行subl --safe-mode:若恢复,说明是插件劫持(常见于Vintage、Origami) -
Vintage插件需进Preferences → Package Settings → Vintage → Settings,设"exit_insert_mode_on_escape": false -
Origami插件则关掉其close_on_escape选项











