清空 User.sublime-keymap 并保留[]可恢复默认快捷键,因Sublime加载顺序为Default→插件Default→User,清空后退回到前两者组合逻辑,不删插件、不改设置,仅重置键位映射,安全高效。

直接清空 User.sublime-keymap 并保留 [],是最快、最安全的恢复方式;其他“重置”操作多数无效或过度。
为什么清空 User 文件就能解决大多数快捷键冲突
Sublime 的快捷键加载顺序是:内置 Default.sublime-keymap → 插件自带的 Default.sublime-keymap(如 Vintage、Emmet)→ 用户级 User.sublime-keymap。后加载者覆盖前加载者,且不报错。你写的自定义绑定,常被插件默认规则覆盖,或反过来覆盖了原生行为。
- 清空
User.sublime-keymap后,Sublime 退回到插件默认 + 内置默认的组合逻辑,绝大多数原生功能(ctrl+d选词、ctrl+/注释、ctrl+shift+p命令面板)立刻回归 - 这个操作不删插件、不改主题、不碰项目设置,只影响按键映射,风险极低
- 必须确保文件内容为合法 JSON 数组:哪怕为空,也得是
[],不能是空文件、{}或带中文逗号
如何验证是不是 User 文件导致的问题
别猜,用 subl --safe-mode 快速定位根源:
- 完全退出 Sublime(macOS 活动监视器里确认无残留进程,Windows 任务管理器杀掉
sublime_text.exe和subl.exe) - 终端执行
subl --safe-mode(macOS/Linux)或subl.exe --safe-mode(Windows) - 在安全模式下测试目标快捷键(如
ctrl+shift+p、ctrl+/)——若恢复正常,说明问题出在User/目录下的某个 keymap 文件,而非 Sublime 自身 - 此时再清空
User.sublime-keymap,比盲目删插件或重装高效得多
别漏掉插件自带的 keymap 文件
仅清空 User.sublime-keymap 不够的情况,常见于这些插件在 Packages/插件名/ 下写了独立的 Default.sublime-keymap:
- Vintage(模拟 Vim 模式)会接管
esc、i、:等键,且其绑定不走 User 文件 - Emmet 默认劫持
tab,但它的 context 规则写在插件目录的Default.sublime-keymap里,不是靠改 User 能禁用的 - Package Control、Git、Origami 这类插件也会自带快捷键,优先级高于 User
- 排查方法:打开
Preferences → Browse Packages…,进每个可疑插件目录,搜索"keys",看是否定义了冲突组合
清空后仍不生效?检查这几个隐藏干扰点
真正干净的恢复,要绕开三个容易被忽略的层:
-
sublime.log_input(True)控制台无输出 → 说明按键根本没进 Sublime:macOS 查「系统设置 → 键盘 → 快捷键 → 输入源」里cmd+shift+p是否被搜狗/百度设为中英文切换;Windows 查 NVIDIA 控制面板热键 - 项目级
.sublime-project文件里写了"keys"字段,会覆盖用户和默认绑定,优先级最高 - 某些 UI 插件(如 Ayu、Material Theme)会在
.sublime-theme文件里硬编码快捷键行为,这类修改无法通过 Key Bindings 编辑器看到


















