editorconfig插件生效的前提是关闭sublime原生detect_indentation:必须在用户设置中添加"detect_indentation": false,并确保.editorconfig文件置于项目根目录、命名正确且含root = true,同时移除冲突的硬编码缩进设置。

EditorConfig 插件必须配 detect_indentation: false
EditorConfig 插件装了但缩进没变,90% 是因为 Sublime 自带的 detect_indentation 在抢控制权。它会记住你上次打开文件时的缩进方式(比如 2 空格),然后无视 .editorconfig 里的 indent_style 和 indent_size。
解决方法很简单:打开 Preferences → Settings,在右侧用户设置里加这一行:
{"detect_indentation": false}
同时删掉或注释掉 "translate_tabs_to_spaces"、"tab_size" 这类硬编码值——让 EditorConfig 完全接管,别留“双轨制”。
.editorconfig 文件位置和命名不能错
EditorConfig 插件只从当前项目根目录(即你用 Project → Open Folder 打开的那个文件夹)向上逐级查找第一个 .editorconfig,遇到 root = true 就停止搜索。放错位置等于没配。
- 文件名必须是纯
.editorconfig(点开头、全小写、无后缀);写成editorconfig、.editorconfig.txt或editorconfig.ini都无效 - 必须放在项目顶层目录,不是
src/、frontend/这类子目录下 - 多根工作区中,每个根目录都要单独放一份
.editorconfig,不能共用 - 检查上层目录是否误写了
root = true——这会让当前项目直接被跳过
格式化插件依赖外部 CLI 工具,不是装完就生效
Sublime 本身不执行代码风格判断,所有格式化效果都靠调用外部工具(如 prettier、black、stylua)实现。插件只是管道,不是规则制定者。
常见失效原因:
-
JsPrettier默认忽略项目级.prettierrc,需在插件设置里显式启用:"config_precedence": "file-override" -
sublime_black要求"use_stdin": true开启,否则不传内容给black -
prettier_cli_path或binary必须填绝对路径(如/opt/homebrew/bin/prettier),留空 ≠ 自动探测;Windows 用户要带.cmd后缀 - 终端执行
editorconfig-core-py --version或black --version没输出?说明 CLI 工具根本没装或不在 Sublime 可见的$PATH里
团队配置最容易被忽略的细节
团队统一配置最常卡在环境变量隔离和 CLI 工具路径可见性上。Sublime 的插件进程默认不继承 shell 的完整环境,尤其 macOS M1/M2 上 Homebrew 安装的工具路径(/opt/homebrew/bin)经常不可见;WSL 用户若在 Windows GUI 模式下运行 Sublime,根本访问不到 WSL 的 $PATH。
验证方式:打开 Sublime 控制台(Ctrl+`),输入 import os; print(os.environ.get('PATH')),看输出里有没有你的 CLI 工具所在路径。没有?就得在插件的 env 字段里手动补全,而不是指望它自动同步。











