atom默认无格式化快捷键,ctrl+s需先解绑core:save再按语言scope重绑prettier:format,并启用插件“format on save”才生效。

Atom 默认不带任何格式化快捷键,按 Ctrl+Alt+B 或 Ctrl+S 不起作用是正常现象——不是你装错了,而是它根本没绑定。
快捷键为什么按了没反应
常见失效不是插件没装,而是三个关键点漏掉任一:scope 不匹配、keymap.cson 语法错误、没执行 Window: Reload。Atom 的快捷键绑定极其依赖 CSON 格式和作用域层级,写错一个缩进或引号,整段规则就静默失效。
- 右下角显示
Plain text?必须先右键 → Language Mode 切成JavaScript、CSS等明确类型 - 插件已启用但命令未注册?打开
Command Palette(Ctrl+Shift+P),输入beautify或prettier,看对应命令如atom-beautify:beautify-editor是否可搜到 - keymap.cson 路径写错?Windows 是
%USERPROFILE%\.atom\keymap.cson,macOS/Linux 是~/.atom/keymap.cson,改错文件完全无效 - 写了但没 reload?保存后必须按
Ctrl+Alt+R(Win/Linux)或Cmd+Alt+R(macOS),重启 Atom 不必要也不够快
怎么给 atom-beautify 绑定 Ctrl+Alt+B
atom-beautify 默认不注册快捷键,必须手动加进 keymap.cson。它用的命令是 atom-beautify:beautify-editor,注意拼写和冒号不能少。
- 打开
keymap.cson(菜单 → Atom → Open Your Keymap) - 在末尾添加(缩进用 2 空格,字符串用单引号):
'.editor':<br> 'ctrl-alt-b': 'atom-beautify:beautify-editor'
- 保存后立即按
Ctrl+Alt+R重载窗口 - 验证:打开 .js 文件,全选(
Ctrl+A)再按Ctrl+Alt+B—— 只格式化选中部分;不选中则格式化整个文件
如何让 Ctrl+S 变成“保存并格式化”
不能只加一条新绑定,否则 core:save 和 prettier:format 会并发执行,结果是刚格式完就被旧内容覆盖。必须「先解绑,再按语言重绑」。
- 在
keymap.cson顶部加:'*':<br> 'ctrl-s': 'unset!'
- 再按真实 scope 添加(用
Developer: Toggle Dev Tools→ 控制台执行atom.workspace.getActiveTextEditor().getGrammar().scopeName查准 scope):'.source.js':<br> 'ctrl-s': 'prettier:format'<br>'.source.css':<br> 'ctrl-s': 'prettier:format'
- 同时确保
prettier-atom插件设置里勾了 Format on save,否则未保存缓冲区可能静默失败 - 别用
atom-text-editor这种宽泛选择器——它容易被其他插件更精确的规则覆盖
不同语言该用哪个格式化插件和命令
atom-beautify 是通用调度器,但对 JSX/TS/Vue 容易误拆结构;prettier-atom 更稳但默认不支持 .vue;XML 和 SQL 需专用插件。命令名和依赖工具都不同,混用会报 beautifier not found。
- JS/TS/JSX/CSS:装
prettier-atom,命令是prettier:format,依赖全局npm install -g prettier - Python:用
atom-beautify+ 本地装autopep8或black,命令是atom-beautify:beautify-editor - XML:卸载 atom-beautify 的 XML 支持,单独装
xml-formatter,命令是xml-formatter:format,绑定Ctrl+Alt+Shift+B - .vue 文件:prettier-atom 默认不处理,需在插件设置里手动添加 language ID
vue,且右下角必须切为Vue Component
真正卡住人的地方不在插件装没装,而在 scope 是否精准匹配、keymap.cson 是否语法合法、以及 reload 是否执行——这三个点漏掉任何一个,快捷键就形同虚设。











