快捷键失效需先定位拦截层:控制台无日志说明系统/输入法/显卡热键劫持;有日志则检查加载顺序与插件覆盖;user配置须json语法正确;esc/cmd+b/tab等属内核行为,不走keymap流程。

快捷键没反应,八成不是 Sublime 坏了,而是按键根本没进编辑器,或者进了但被后加载的规则静默覆盖——改配置前必须先定位拦截层。
Ctrl+C / Cmd+Shift+P 按了没输出?先看按键进没进 Sublime
按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按失效组合键(如 Ctrl+C、Cmd+Shift+P)。如果控制台**完全没输出**,说明信号在进 Sublime 前就被截断:
- Windows:检查 NVIDIA 控制面板 → 「热键」、Intel Graphics Command Center → 「快捷键」,尤其禁用
Ctrl+Alt+方向键类组合 - 搜狗/QQ 拼音默认劫持
Ctrl+Shift和Ctrl+Space,切英文输入法再试 - macOS:系统设置 → 键盘 → 快捷键 → 「Spotlight」和「输入源」里是否占用了
Cmd+Space或Cmd+Shift+P - 外接键盘用户:确认「使用 F1、F2 等键作为标准功能键」已勾选,否则部分键盘固件会吞掉
Backspace或Esc
有 key evt 日志但功能不对?查加载顺序和插件覆盖
如果控制台输出了 key evt: ctrl+shift+p,说明按键已送达,问题出在绑定逻辑。Sublime 加载顺序是:Default → 插件自带的 Default.sublime-keymap → User.sublime-keymap,后加载者无提示覆盖前者。
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开 Default 和 User - 在左侧 Default 中搜索目标组合(如
"ctrl+d"),确认它原本应触发duplicate_line - 在右侧 User 和所有插件目录(
Packages/Vintage/、Packages/Emmet/等)中全局搜索同一"keys"字段 - 高危插件优先禁用:
Vintage、Emmet、Origami、SideBarEnhancements - 临时验证:命令行运行
subl --safe-mode,若快捷键恢复,坐实是插件劫持
User.sublime-keymap 写错 JSON 就等于没写
这个文件是纯 JSON 数组,语法错一点整份配置就被 Sublime 静默忽略,右下角红字提示一闪而过,极易错过。
- 所有键名和字符串值必须用英文双引号:
"keys"不是keys,"toggle_comment"不是toggle_comments - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - 不支持
//或/* */注释;想临时禁用某条绑定,直接删整行,或改成无效命令:"command": "not_a_real_command" - 保存(
Ctrl+S)后立即生效,无需重启,但若某个插件的Default.sublime-keymap里也有同keys且加载更晚,你的自定义仍会被盖掉
Esc、Tab、Cmd+B 这些键根本不在 Key Bindings 管辖范围内
Esc 关搜索框、关命令面板、关替换栏,是 Sublime 内核硬编码行为,不走任何 .sublime-keymap 流程。你在 User.sublime-keymap 里加 {"keys": ["escape"], "command": "hide_panel"} 不仅无效,还会破坏原生逻辑——比如按 Esc 后搜索框不关闭,UI 卡住。
-
Esc失效时,先运行subl --safe-mode:若恢复,说明是插件(如Vintage或Origami)劫持了该键 -
Cmd+B在 macOS 上常被 Finder 或 Dock 的系统级快捷键占用,需去「系统设置 → 键盘 → 快捷键 → 应用快捷键」里搜索并删除冲突项 -
Tab切换焦点也属内核行为,插件无法通过 keymap 修改;若异常,大概率是显卡驱动或输入法固件层干扰











