必须手动编辑keymap.cson文件才能生效,图形界面操作无效;路径为~/.atom/keymap.cson(macOS/Linux)或%USERPROFILE%.atom\keymap.cson(Windows),需用Atom命令Application: Open Your Keymap打开,修改后重启或执行Window: Reload。

直接改 keymap.cson 文件,不是在设置界面点点点就能生效的——所有图形化操作对快捷键配置完全无效。
怎么找到并正确编辑 keymap.cson
Atom 不走 UI 配置快捷键,全靠手动编辑 CSON 格式的配置文件。它默认路径是:
- macOS/Linux:
~/.atom/keymap.cson - Windows:
%USERPROFILE%\.atom\keymap.cson
最安全的方式是用 Atom 自带命令打开:按 Cmd+Shift+P(macOS)或 Ctrl+Shift+P(Windows/Linux),输入 Application: Open Your Keymap 回车。别手输路径,容易进错目录或误改 config.cson 或 init.coffee ——那俩改了也没用。
CSON 是 CoffeeScript Object Notation,语法比 JSON 更松但有硬规则:
- 键名必须用单引号,比如
'atom-text-editor',双引号会报错 - 支持
#开头的注释 - 不能多逗号、不能缺引号、不能用中文标点——写错一个字符,整条规则静默失效
- 文件修改后必须重启 Atom 或执行
Window: Reload(Cmd+Alt+R/Ctrl+Alt+R),否则不加载
快捷键绑定格式和作用域控制
基本格式是:'selector': 'keystroke': 'command'。三部分缺一不可,顺序不能乱。
常见 selector 示例:
-
'*':全局生效(但很多面板如命令面板、设置页有自己的 scope,这里写的不一定管用) -
'atom-text-editor':所有文本编辑区 -
'.source.js':仅 JavaScript 文件 -
'.platform-darwin':仅 macOS 系统(可组合使用,如'.platform-darwin .source.js')
keystroke 写法必须小写、短横线连接:ctrl-shift-k ✅,Ctrl+Shift+K ❌,ctrl-up ✅,Ctrl+Up ❌。
command 名必须带完整命名空间:editor:delete-line ✅,delete-line ❌,editor:delete-lin(拼错)❌——拼错不会报错,只是没反应。
为什么我绑了却没触发?优先排查这几点
Atom 快捷键匹配有明确优先级:系统级绑定 > 插件绑定 > core 默认绑定 > 用户 keymap.cson。你写的规则只有没被更高层拦截时才生效。
快速定位问题的方法:
- 按
Cmd+.(macOS)或Ctrl+.(Windows/Linux)打开实时快捷键解析器,按你的组合键,看底栏显示哪条规则被命中、来自哪个Source - 进
Settings → Keybindings,搜你的按键(比如ctrl-/),检查是否有多条同键绑定;重点看Source列:如果是nuclide或docblockr,说明插件抢了 - macOS 用户务必去「系统设置 → 键盘 → 快捷键 → 输入源」里关掉
Cmd+Space、Cmd+/这类系统级绑定——Atom 根本收不到事件 - 想覆盖默认行为(比如把
ctrl-s从保存改成格式化),得先用'*': 'ctrl-s': 'unset!'解绑,再按需重绑;只加新规则会导致两个命令同时执行
跨平台和插件命令名要对得上
不同系统按键前缀不同:cmd(macOS)、ctrl(Windows/Linux),别混用。例如想让 Cmd+S 在 macOS 格式化 JS,就得写 '.platform-darwin .source.js': 'cmd-s': 'prettier:format'。
插件提供的命令名不是凭空猜的。装了 prettier-atom,命令是 prettier:format;装了 js-beautify,是 js-beautify:beautify-editor;装了 script,运行脚本是 script:run,不是 run-script 或 execute。
验证命令是否存在:打开对应类型文件(如 index.js),呼出命令面板(Cmd+Shift+P),输入冒号 :,它会优先列出当前上下文可用命令——比瞎猜靠谱得多。
真正容易被忽略的是作用域嵌套和插件依赖:你在 .source.js 下绑了 prettier:format,但 prettier-atom 插件没启用,或者它的“格式化时自动保存”选项关着,那这个快捷键就只是安静地按下去,什么也不会发生。

















