最稳方法是用Ctrl+Shift+P查命令面板中的真实command名;其次用sublime.log_commands(True)在控制台验证;优先查插件文档或默认配置文件定位原始定义。
怎么找到正确的 command 名?
快捷键没反应,八成是 command 写错了——这不是拼写问题,而是 Sublime 内部命令名和你直觉理解的功能名常常不一致。比如“格式化代码”在不同插件里可能是 format_code、js_format 或 prettify,而原生“删除整行”根本不是独立命令,得靠宏文件调用:run_macro_file。
- 最稳的方法:按
Ctrl+Shift+P打开命令面板,输入功能关键词(如“delete line”),看到的完整条目就是真实command名 - 辅助验证:按
Ctrl+`打开控制台,输入sublime.log_commands(True),再手动点一次菜单或右键对应功能,控制台会直接打出它实际执行的command和args - 别抄网上教程里的命令名——很多已过时;优先查你当前安装的插件文档,或打开左侧默认配置文件(
Preferences → Key Bindings左侧)搜关键词定位原始定义
为什么加了快捷键却没生效?
保存后没反应,不是 Sublime 坏了,而是三个地方最容易卡住:
-
JSON格式错误:末尾多逗号、引号不闭合、括号不匹配——保存后右下角会弹红字提示,但很多人忽略它 - 被更高优先级规则拦截:左侧默认文件里已有
"keys": ["f5"]绑定到build,你在右侧也写"keys": ["f5"]却没加context,那你的新规则会被默认规则覆盖(Sublime 从左到右加载,右侧只覆盖同keys的条目) -
context限制太严:比如写了{"key": "selector", "operand": "source.python"},但你在 Markdown 文件里按快捷键,自然不触发——查当前语法按Ctrl+Shift+P→Show Scope Name看实际 scope 值
如何安全覆盖常用快捷键?
想把 Ctrl+D 从“选词”改成“复制整行”,不能硬覆盖,否则日常多光标编辑就废了。得用 context 做条件判断,让同一组按键在不同场景干不同事。