Atom缩进需统一设为4空格:必须同时配置editor.tabLength=4和editor.softTabs=true,禁用language-python等插件的独立tabLength设置,并启用Auto Indent on Paste;.editorconfig是跨环境缩进一致的必备保障。

Atom 默认用 2 空格缩进,但 Python、Go 或多数团队规范要求 4 空格——改法简单,关键在改对地方,否则会被插件覆盖或粘贴失效。
editor.tabLength 和 editor.softTabs 必须同时设对
这两个配置决定你按 Tab 键到底插入什么、插几个字符:editor.tabLength 控制宽度(比如 4),editor.softTabs 决定是插入空格还是真实 \t 字符。
- 必须把
editor.tabLength设为4(不能只改界面里的 “Tab Length” 数值却不确认底层生效) - 必须开启
editor.softTabs,否则即使设了 4,按 Tab 还是插入\t,Git diff 和 linter 会报mixed spaces and tabs - 改完不用重启 Atom,但已打开的文件要重新触发一次缩进行为(比如删个空格再 Undo,或执行一次
Editor: Auto Indent)
language-python 插件会偷偷覆盖全局设置
新建 .py 文件后缩进仍是 2 格?大概率是 language-python 包自带的 tabLength: 2 在起作用,它优先级高于全局设置。
- 进
Packages → language-python → Settings,检查它的Tab Length是否被单独设成2 - 更稳妥的做法:直接删掉该包里的自定义
tabLength配置,让全局editor.tabLength统一接管 - 如果还装了
prettier-atom或atom-beautify,它们也会接管缩进逻辑——此时要调的是插件自身的prettier.tabWidth或indent_size,不是编辑器原生设置
Auto Indent on Paste 不开,粘贴就塌陷
开了 Show Indent Guide 却发现粘贴代码全顶到行首?不是缩进线没生效,是 Auto Indent on Paste 没开。
- 必须同时启用三项:
Soft Tabs+Auto Indent+Auto Indent on Paste - 只开
Auto Indent,回车能缩进,但Ctrl+V进来的代码不会自动对齐上下文 - 不开
Soft Tabs,Auto Indent on Paste可能混入\t,导致 ESLint 报expected indentation of 4 spaces but found 0
.editorconfig 是跨项目缩进一致的唯一靠谱方式
单靠 Atom 设置只能管当前机器,换项目、换人、换 CI 就失效。真正稳定的缩进规则得写进项目本身。
- 在项目根目录加
.editorconfig,内容至少包含:[*]\nindent_style = space\nindent_size = 4
- 装
editorconfig插件(非必须但强烈建议),它会自动同步editor.tabLength和editor.softTabs - 这样
prettier、eslint、black和 Atom 缩进行为才真正对齐——否则你会看到缩进线整齐排列,格式化后却满屏报错
最容易被忽略的点是:插件配置和编辑器原生设置经常打架,尤其在 Python/JS/HTML 混合项目里;Auto Indent on Paste 和 Soft Tabs 必须成对启用,缺一不可;.editorconfig 不是“可选优化”,而是多人协作时避免缩进冲突的底线配置。

















