日常只处理.json文件选jsonpp,轻量免依赖、装完即用;格式化.js/.ts/.vue等前端代码选prettier-atom,支持.prettierrc配置且需手动开启Format on Save;多语言项目可试atom-beautify,但须额外安装对应CLI工具,且三者不可共存。

atom-beautify 和 prettier-atom 是当前 Atom 中最常用的两个格式化插件,但它们适用场景不同,装错或混用反而导致快捷键失效、保存无反应、右键菜单重复等问题。
装哪个插件?看你要格式化的文件类型
日常只处理 .json 文件:直接装 jsonpp,纯前端、不依赖 Node、装完就能用,快捷键 ctrl+alt+b(Windows/Linux)或 cmd+alt+b(macOS)。
要格式化 .js/.ts/.jsx/.vue 等现代前端代码:选 prettier-atom,它开箱支持这些后缀,自动读取项目里的 .prettierrc 或 prettier.config.js,但必须手动开启 Format on Save。
想覆盖 Python/PHP/HTML/CSS/Java 等多语言且愿意逐个配 CLI 工具:可试 atom-beautify,但它不是“装完就自动工作”——它只是调度器,得额外用 apm install js-beautify 或 apm install php-cs-fixer 等补上后端引擎,否则点右键会报 beautifier not found。
别装 atom-beautify 用来处理 JSON:它对 JSON 支持弱,还容易因依赖旧版 js-beautify 报 TypeError: Buffer is not a function(尤其 Atom 1.60+),静默崩溃,菜单变灰。
装完没反应?先检查这三件事
Atom 不靠文件后缀判断语言,而是看右下角显示的 grammar(如 source.json、source.js)。如果显示 Plain text 或 Auto,所有格式化插件都会跳过。
- 手动点击右下角 language-id → 选对应类型(比如
.vue文件要选Vue Component,不能留着HTML) -
.jsonc文件不会被jsonpp或prettier-atom识别为 JSON 格式化目标,得改后缀为.json或换用jsonc插件仅做高亮 - 快捷键冲突常见:
jsonpp默认用ctrl+alt+b,prettier-atom用ctrl+alt+f,两者共存时右键菜单会出现两个入口,建议只留一个
仍无效?打开命令面板(ctrl+shift+p / cmd+shift+p),输入 jsonpp:prettify 或 prettier:format,看能否手动触发——能说明插件正常,快捷键被其他插件劫持;不能说明插件根本没启用。
格式化失败报 Unexpected token?不是插件问题
这是原始内容不合法,jsonpp 和 prettier-atom 都严格遵循 JSON 标准,遇到以下任一就会中断:
- 含注释:
//或/* */→ 全删掉(JSON 不支持) - 尾逗号:
{"a": 1,}→ 改成{"a": 1} - 单引号:
'key': 'val'→ 改成"key": "val" - 中文键名没加双引号:
{姓名: "张三"}→ 改成{"姓名": "张三"}
想保留注释?改用 .jsonc 后缀 + jsonc 插件提供语法高亮,但格式化前仍需手动删注释转成标准 JSON——jsonc 插件不负责格式化,只高亮。
格式化 ≠ 校验,这两个功能必须分开配
光格式化不够。写错一个括号或少个逗号,插件不会提醒,只会报错退出。真正闭环需要:
-
linter-jsonlint:实时标红错误位置(比如Unexpected token }) -
linter+linter-ui-default:这两个必须一起装,缺一个linter-jsonlint就静默失效(控制台可能报Failed to provide linter services)
linter-jsonlint 依赖系统级 jsonlint 命令,得先 npm install -g jsonlint 或用 apm install jsonlint(取决于 Atom 环境是否能调用全局 CLI)。
复杂点在于:格式化插件和校验插件是两套独立系统,各自监听不同事件。比如 prettier-atom 的 Format on Save 和 linter-eslint 的 Fix on save 同时开启,会导致代码反复被改、光标乱跳——这种冲突不容易一眼看出,得关掉其中一个的自动修复开关。

















