先确认快捷键是否被截断:按ctrl+`输入sublime.log_input(true),若无输出说明系统/输入法拦截,有输出才排查sublime内部绑定、插件覆盖或json语法错误。

快捷键根本没进 Sublime,先确认是否被截断
汉化后 Ctrl+Alt+M、Ctrl+/ 等快捷键按了没反应,90% 不是插件坏了,而是按键压根没传进 Sublime。别急着改配置,先验证这点。
按 Ctrl+` 打开控制台,输入 sublime.log_input(True) 回车,再按你失效的组合键(比如 Ctrl+Alt+M)。如果控制台**完全没输出**,说明系统或输入法在半路截掉了:
- Windows 用户重点检查搜狗/QQ 拼音——它们默认用
Ctrl+Alt+M切输入法,切到微软拼音或美式键盘再试 - macOS 用户去「系统设置 → 键盘 → 快捷键 → 输入源」,禁用
Cmd+Space或Cmd+Shift+P这类切换快捷键 - Linux 下 fcitx 常劫持
Ctrl+Shift+B,右键任务栏 fcitx 图标 → 配置 → 高级 → 找到该绑定,按Esc清空,再执行fcitx -r
快捷键进了 Sublime 但没触发,查绑定覆盖顺序
如果控制台输出了类似 key evt: ctrl+alt+m,说明按键已送达,问题出在 Sublime 内部绑定被覆盖。
Sublime 加载快捷键的顺序是:Default(内置)→ 插件的 Default.sublime-keymap → 你的 User.sublime-keymap。后加载的会盖掉前面的:
- 按
Ctrl+Shift+P输入Preferences: Key Bindings,左右并排打开 Default 和 User 文件 - 在 Default 里搜
ctrl+alt+m,确认它原本绑定的是markdown_preview - 在 User 和所有插件目录(
Preferences → Browse Packages)里全局搜索ctrl+alt+m,看谁最后定义了它 - 临时用
Package Control: Disable Package关掉Vintage、Emmet、Origami这些高危插件,快速定位干扰源
User.sublime-keymap 写错 JSON 就静默失效
你在 Key Bindings – User 里写的任何规则,只要 JSON 格式错一点,整段都会被忽略,且 Sublime 很少报错——右下角可能闪一下红字,一不留神就错过。
必须严格满足以下三点:
- 所有键名和字符串值必须用英文双引号,
"keys"不是‘keys’也不是“keys” - 数组结尾不能多逗号:
["ctrl+alt+f"],是错的,["ctrl+alt+f"]才对 - JSON 不支持
//注释,想临时禁用某条绑定,要么删整行,要么改成"command": "not_a_real_command"
改完务必按 Ctrl+S 保存,Sublime 会立即重载,但若某个插件的 Default.sublime-keymap 里也有同 keys 且加载更晚,你的自定义仍会被盖掉。
Esc、Tab 等键不能靠 Key Bindings 修改
Esc 关搜索框、命令面板、替换栏,是 Sublime 内核硬编码行为,不走任何 .sublime-keymap 文件。你在 User.sublime-keymap 里加 {"keys": ["escape"], "command": "hide_panel"} 不仅无效,还可能破坏原生逻辑——比如按了 Esc,面板卡住不动。
真正该查的是:
- 是否启用了
Vintage插件并进入了 Insert 模式(此时Esc要先退出 Vim 模式) - 是否装了
Origami并开启了close_on_escape - 外接键盘是否勾选了「使用 F1、F2 等键作为标准功能键」(尤其 macOS 上关不了搜索框时)
汉化本身不改快捷键逻辑,但汉化常伴随配置重置或插件误删;最隐蔽的问题往往藏在渲染层或输入法底层,不是改几行 JSON 就能解决的。











