atom本身不带代码格式化能力,必须依赖插件;prettier-atom与atom-beautify不可共存于同一文件类型,否则会互相覆盖、触发两次格式化或报错;js/ts/react/vue项目优先选prettier-atom,多语言混合项目选atom-beautify。

Atom 本身不带任何代码格式化能力,保存时自动整理必须靠插件 + 正确语言识别 + 每语言单独开关,三者缺一不可。
prettier-atom 和 atom-beautify 能不能共存?
不能。二者对同一文件类型(比如 .js)会互相覆盖命令、触发两次格式化,甚至报错或缩进错乱。2026 年主流项目中:
- JS/TS/React/Vue 为主、已有
.prettierrc或配合 ESLint 的,选prettier-atom——它严格按配置走,semi: false就真不加分号 - Python/PHP/SQL/HTML 混合、没统一配置文件的,选
atom-beautify——它背后调用python-beautify、beautysh等独立工具链 - 装完任一插件后,务必去
Packages → [插件名] → Settings确认另一个已禁用
Ctrl+S 没触发格式化,先查这三处
不是插件坏了,而是上下文没对上。常见断点:
- 右下角状态栏显示的是
Plain Text或HTML,不是JavaScript——点击切换,或在config.cson加'*.js': 'source.js'映射 -
prettier-atom的Format On Save开了,但File Extensions里没包含你用的后缀(比如漏了tsx或mjs) -
atom-beautify的Beautify On Save和Save After Beautify两个开关都要勾上;且 JavaScript/CSS/HTML 等语言区块得**逐个勾选**,不存在全局开关
缩进错乱、分号乱加、引号被改?根源在配置冲突
格式化插件和编辑器缩进设置不一致,是绝大多数“越整越乱”的原因:
- 编辑器统一设为:Settings → Editor →
Tab Length= 2,勾选Soft Tabs -
prettier-atom默认读.prettierrc;若没这个文件,它 fallback 到编辑器的Tab Length和Soft Tabs状态——所以删了配置文件,行为就变了 -
atom-beautify插件设置里有个Indent With Tabs,必须关掉(设为false),否则它硬塞\t,无视编辑器设置 -
.prettierrc和.editorconfig冲突时,Prettier 强制以自身配置为准;.editorconfig只该留charset、insert_final_newline这类跨编辑器通用项
为什么改完代码不保存就不格式化?
这是 prettier-atom 的明确设计行为,不是 bug。它只对已保存的文件触发格式化——也就是说,你写了半截代码、还没按 Ctrl+S,它完全不介入。这种机制避免了在语法错误状态下强行格式化(比如少写一个括号,格式化可能直接崩)。如果你依赖未保存缓冲区的实时反馈,得换用支持 on-type 格式的编辑器(如 VS Code + Prettier extension),Atom 做不到。











