改keymap.cson是唯一可靠方式,文件路径为~/.atom/keymap.cson(macos/linux)或%userprofile%.atom\keymap.cson(windows),须通过atom→keymap…菜单打开;需确保选择器、按键、命令三要素完整准确,且cson语法无误,否则静默失效。

改 keymap.cson 文件是唯一可靠方式,图形界面 Settings > Keybindings 只能查冲突或禁用,不能新增绑定。
keymap.cson 文件在哪、怎么打开才安全
文件路径固定:~/.atom/keymap.cson(macOS/Linux)或 %USERPROFILE%\.atom\keymap.cson(Windows)。别手动记路径、别在资源管理器里瞎找——容易进错目录或点错文件。最稳妥的方式是通过 Atom 菜单打开:Atom → Keymap…(macOS)或 File → Keymap…(Windows/Linux),它会直接加载你真正的配置文件。
这个文件是 CSON 格式(CoffeeScript Object Notation),支持注释(# 开头)、省略引号(但值含空格或特殊字符时必须加单引号),不接受 JSON 风格的双引号字符串。
快捷键三要素缺一不可:选择器、按键、命令
一个有效绑定不是「按什么→做什么」,而是「在哪儿按、按什么、做什么」。漏掉任何一项,轻则不生效,重则全局乱触发。
-
atom-text-editor:表示只在编辑器文本区域生效;atom-workspace是整个窗口(适合面板切换类命令);*是全局,慎用 -
ctrl-shift-k:按键写法统一用短横线小写,不要写成Ctrl+Shift+K或CTRL-SHIFT-K -
editor:delete-line:命令名必须完整准确,拼错、少冒号、多空格都会静默失败;不确定命令名?在Settings > Keybindings里搜关键词 - 多个同名选择器块会覆盖:后写的
atom-text-editor块会把前面整个顶掉,所有编辑器相关绑定建议集中写在一个块里
为什么改了没反应?常见静默失效原因
CSON 对语法极其敏感,出错不会报错弹窗,只会右下角闪个红点提示,或者干脆没反应。
- 缩进错位、多/少一个逗号、引号不匹配、用了中文标点——这些都导致解析失败
- 保存失败:Atom 有时会锁住文件,手动保存后没真正写入磁盘;改完立刻按
Cmd+Alt+R(macOS)或Ctrl+Alt+R(Win/Linux)重载窗口,比重启快得多 - 误改了
config.cson或init.coffee:这两个文件里写快捷键完全无效 - 作用域不匹配:比如在
.source.js下绑了ctrl-s,但当前文件 grammar 实际是.source.jsx,那就不会触发;查真实 scope 的方法:Cmd+Shift+P → Developer: Toggle Dev Tools → 控制台执行 atom.workspace.getActiveTextEditor().getGrammar().scopeName
想让 Ctrl+S 在 JS 文件里格式化,其他文件照常保存
不能只加一条新绑定,否则 core:save 和 prettier:format 会同时执行。得先解除默认行为,再按语言 scope 精准重绑。
- 先全局禁用原绑定:
'*': 'ctrl-s': 'unset!' - 再限定范围绑定:
'.source.js': 'ctrl-s': 'prettier:format'、'.source.ts': 'ctrl-s': 'prettier:format'、'.source.css': 'ctrl-s': 'prettier:format' - 注意:某些插件(如
prettier-atom)还要求开启「Format on Save」选项,否则prettier:format可能静默失败 - 如果只想恢复原生命令(比如 Ctrl+Shift+P 打开命令面板),显式绑定:
'atom-text-editor': 'ctrl-shift-p': 'core:open-command-palette'
scope 名和命令名必须一字不差,CSON 不做容错校验,错一个字符就白写。










