editorconfig 插件不生效需检查四点:1. 文件必须命名为.editorconfig并置于项目根目录;2. 缩进/换行规则仅影响新输入或重排版,不修改已有内容;3. 需关闭sublime的detect_indentation等干扰设置;4. python项目须在.editorconfig中排除__pycache__/等目录。

EditorConfig 插件装了但不生效?检查 .editorconfig 文件位置和命名
Sublime 不会自动扫描项目任意位置的配置文件,它只认根目录下的 .editorconfig(注意是点开头、全小写、无后缀)。常见错误是把文件存成 editorconfig、.editorconfig.txt 或放在子目录里。
实操建议:
- 确保文件名为
.editorconfig,直接放在你打开的文件夹(即 Sublime 的“项目根目录”)下 - 如果用的是多根工作区,每个根目录都要有自己独立的
.editorconfig - Sublime 不支持通过
root = false向上穿透查找——一旦遇到root = true就停,没找到就彻底忽略
缩进和换行没按预期生效?优先级和 fallback 规则要搞清
EditorConfig 的规则不是“覆盖”,而是“匹配 + 应用”。Sublime 的 EditorConfig 插件会先匹配最具体的路径段(比如 **.js),再回退到通用规则(如 *),但不会叠加。更关键的是:它只设置编辑器行为,不修改已存在文件的内容。
实操建议:
-
indent_style和indent_size只影响新输入或重排版(如Ctrl+Shift+P→ “Reindent”),不会自动把空格转 Tab - 换行符
end_of_line仅在保存时生效,且依赖文件当前编码是否可安全转换(比如 GBK 编码下设lf可能失败) - 如果某语言插件(如 JS Custom)也控制缩进,它可能覆盖 EditorConfig —— 这时得关掉插件的缩进自动推断(查
js_custom.sublime-settings里的infer_indent)
团队协作时格式总不一致?别只靠 .editorconfig,还得管好 Sublime 自身设置
EditorConfig 管的是“文件保存时的行为”,但 Sublime 自己的全局设置(如 detect_indentation)会干扰它。尤其当开发者本地开启了自动检测缩进,打开一个旧文件后,Sublime 会优先记住该文件历史缩进方式,后续编辑就无视 .editorconfig。
实操建议:
- 在 Sublime 的
Preferences.sublime-settings中显式关闭:"detect_indentation": false - 确保所有成员都禁用
translate_tabs_to_spaces和tab_size这类硬编码设置,让 EditorConfig 完全接管 - 推荐加一条 CI 检查:用
editorconfig-checker命令行工具验证实际保存结果是否符合.editorconfig预期
Python 文件缩进混乱?pyc 和 __pycache__ 目录必须排除
EditorConfig 默认通配符 ** 会匹配所有子路径,包括 Python 编译缓存目录。一旦 __pycache__/ 下的 .py 文件被误匹配,Sublime 可能按错误规则重写它们(虽然通常不会保存,但重排版操作可能触发)。
实操建议:
- 在
.editorconfig开头加明确排除段:[__pycache__/**]
indent_style = ignore
- 同理处理
*.pyc、venv/**、.git/**—— 这些不是“优化项”,是避免意外覆盖的必要防护 - 注意 Sublime 的
file_exclude_patterns不影响 EditorConfig 匹配,排除必须写在.editorconfig里
真正难的不是配对参数,而是让所有人关掉本地自定义缩进习惯,并接受 EditorConfig 的“只读不改旧内容”逻辑。很多人以为保存就自动修正历史混杂缩进,其实不会——那得靠 autopep8 或 black 这类代码重写工具,EditorConfig 只管未来。











