Atom全局默认缩进需同时设置tabLength和softTabs:Settings→Editor→设Tab Length值并勾选Soft Tabs;否则粘贴、回车缩进异常,且已开文件需手动触发Editor: Auto Indent才生效。

怎么改 Atom 全局默认缩进(tabLength 和 softTabs)
Atom 的全局缩进由 tabLength 和 softTabs 两个配置项共同决定,不是单靠“缩进大小”就能调对的。改错一个,粘贴、回车、格式化全会出问题。
操作路径:Settings → Editor → 找到 Tab Length 输入框(默认是 2),以及下方的 Soft Tabs 开关(必须勾选)。
-
Tab Length设为 2 或 4,只在Soft Tabs开启时生效;关了它,这个值就无效,Atom 会用硬制表符(\t),且右下角显示Tab: 4类似字样 - 不勾选
Soft Tabs,哪怕Tab Length设成 2,按 Tab 键插入的仍是不可见的\t,和 ESLint、Prettier、Git diff 全部冲突 - 改完不用重启 Atom,但已打开的文件不会自动更新——得删一行再 Undo,或执行一次
Editor: Auto Indent才能触发新规则
为什么改了全局设置,新文件还是用 2 空格?
因为 prettier-atom、atom-beautify 或项目级 .editorconfig 正在接管缩进控制,Atom 原生设置被静默覆盖。
常见覆盖源优先级从高到低:.editorconfig → prettier.tabWidth → atom-beautify 的 indent size → Atom 原生 tabLength。
- 检查右下角是否显示
Prettier或EditorConfig字样;有则说明当前文件已被插件接管 - 打开命令面板(
Ctrl+Shift+P),搜Settings: Show Language Specific Settings,看当前语言(如 JavaScript)下是否单独设了tabLength - 如果装了
prettier-atom,它的prettier.tabWidth值(比如 2)会直接压倒editor.tabLength,此时改后者完全没反应
怎么让某个项目统一用 4 空格缩进?
靠手动改每个文件右下角不现实,也容易误点锁定。真正稳定的做法是项目根目录放 .editorconfig 文件,并确保已安装并启用 editorconfig 插件。
示例 .editorconfig 内容:
root = true [*] indent_style = space indent_size = 4 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.py] indent_size = 4 [*.js] indent_size = 2
-
editorconfig插件启动后,会自动读取该文件并覆盖 Atom 原生设置,且对未识别语言(如.env)也有效 - 若某文件右下角已点击锁定为
Spaces: 2,.editorconfig不会强制刷新——必须关闭该标签页再重开 - 注意
root = true必须写在第一行,否则子目录可能继承错误配置
为什么点了右下角 “Spaces: 2” 就再也变不回自动检测?
点击状态栏缩进指示器(如 Spaces: 2)选择数值,等于给这个文件打了个永久标记,Atom 会跳过所有自动检测逻辑,包括 detect_indentation 和 .editorconfig。
- 这个锁定只针对当前文件标签页,关掉再重开(且文件已保存)即可恢复自动识别
- 没有命令能“强制重检测”,
Editor: Auto Indent只是按当前锁定规则重排,不是重新分析内容 - 如果文件开头是注释、BOM、空行,或前 20 行缩进不一致(比如混用空格和
\t),detect_indentation本来就不会触发——点不点右下角结果一样
真正容易被忽略的是:Atom 的“自动检测”不是持续监听,只在文件打开瞬间扫前若干行;一旦错过那次机会,后面全靠人工干预或重开文件。

















