jsprettier必须显式配置"config_precedence": "file-override"才能读取项目级.prettierrc,否则默认硬编码规则(缩进2、单引号、无尾逗号)导致团队格式不一致;prettier_cli_path须填绝对路径,windows需带.cmd后缀。

JsPrettier 必须配 .prettierrc 才能真正协同
装完 JsPrettier 却发现格式化结果和同事不一致?问题不在插件本身,而在它默认不读项目配置。默认行为是硬编码缩进为 2、单引号、末尾不加逗号——这和团队约定往往冲突。
必须手动打开 Preferences → Package Settings → JsPrettier → Settings,在用户配置里加上:
{
"prettier_options": {
"config_precedence": "file-override"
}
}
否则它永远忽略你项目根目录下的 .prettierrc 或 package.json 中的 prettier 字段。另外注意:prettier_cli_path 必须填绝对路径(如 /opt/homebrew/bin/prettier),留空 ≠ 自动查找;Windows 用户要写 .cmd 后缀,比如 C:\Users\xxx\AppData\Roaming\npm\prettier.cmd。
Python 团队别用 AutoPEP8,改用 sublime_black + black
AutoPEP8 对 Python 3.10+ 的 match、类型注解、f-string 内部换行等语法基本无感,且不校验类型注解格式,CI 流水线用 black 校验时会反复报错。
- 先在项目虚拟环境中运行
pip install black(避免全局污染) - 通过 Package Control 安装插件
sublime_black(作者 zabb0t,注意不是同名旧插件) - 确认插件设置中
"use_stdin": true已启用——这是 Sublime 把选区内容传给black的开关 - 若团队用
pyproject.toml配置[tool.black],sublime_black默认支持,无需额外操作
EditorConfig-Sublime 是跨语言风格兜底层,但不能替代具体格式化工具
EditorConfig 插件只管基础编辑行为:缩进大小、是否转空格、行尾换行符、字符编码。它不格式化代码逻辑,也不处理括号对齐、对象换行等语义规则。
它的价值在于「统一底线」:哪怕某人没装 prettier 或 black,只要开了 EditorConfig,至少不会把 tab_size 设成 8 或混用 \r\n 和 \n。
安装后,项目根目录放一个 .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
注意:它不覆盖 JsPrettier 或 sublime_black 的格式化结果,而是和它们共存——前者管「怎么输」,后者管「怎么排」。
XML/HTML/CSS 格式化失败时,先查语法合法性再调插件
Indent XML 和 HTML-CSS-JS Prettify 这类插件不带修复能力,遇到语法错误直接静默跳过或报错,根本不会提示你哪里错了。
常见卡点:
-
xml.parsers.expat.ExpatError: not well-formed:说明有未闭合标签、属性缺引号、裸露&等,得先用python -m xml.etree.ElementTree xxx.xml定位 - HTML 中内联
<script>const html = <div>${x}</script>被误解析:模板字符串里的<div> 被当标签处理,建议拆出单独 <code>.js文件再格式化 - 右下角显示
Plain Text:插件命令根本不会触发,手动点击状态栏切换语法,或确保文件已保存为.xml/.html后缀
真正麻烦的不是插件装不装,而是格式化工具链里每层都依赖前一层的输出合法——EditorConfig 管输入,prettier/black 管中间态,Indent XML 管最终呈现,漏掉任何一环,团队风格就断了。











