sublime text本身不制定代码风格规则,统一风格依赖外部工具(如prettier、black、xmllint);插件仅作调用管道,须配置项目级配置文件(如.prettierrc、pyproject.toml)、绝对路径的cli工具及正确语法识别,否则格式化失效。

Sublime Text 本身不参与代码风格决策,所有「统一风格」效果都来自外部格式化工具(如 prettier、black、xmllint)的调用结果;插件只是管道,不是规则制定者。想靠改 Sublime 设置实现团队对齐,注定失败。
JsPrettier 必须绑定项目级 .prettierrc 才算真正协同
很多人装完 JsPrettier,发现同事格式化后缩进是 2,自己却是 4——问题不在插件,而在它默认忽略本地配置。必须手动打开 Preferences → Package Settings → JsPrettier → Settings,在用户配置里加这一行:
{
"prettier_options": {
"config_precedence": "file-override"
}
}
否则它永远只读全局设置或硬编码默认值。另外注意:prettier_cli_path 必须填绝对路径(比如 /opt/homebrew/bin/prettier),留空 ≠ 自动探测;Windows 用户要写 .cmd 后缀,例如 C:\Users\xxx\AppData\Roaming\npm\prettier.cmd。
Python 团队必须用 sublime_black + black,别碰 AutoPEP8
AutoPEP8 对 Python 3.10+ 的新语法(match、type 声明、f-string 内部换行)基本无感,且不校验类型注解格式,容易和 CI 中的 black 行为冲突。正确做法是:
- 先在终端运行
pip install black(推荐用项目级venv,避免全局污染) - 再通过 Package Control 安装
sublime_black(作者 zabb0t,非同名旧插件) - 确认插件设置中
"use_stdin": true已启用——这是 Sublime 把选区内容传给black的开关 - 若团队用
pyproject.toml配置[tool.black],sublime_black默认支持,无需额外设置
XML/HTML/CSS 格式化必须先验语法合法性,否则静默失败
Indent XML 和 HTML-CSS-JS Prettify 这类插件不带语法修复能力,遇到错误直接跳过或报错。常见卡点:
-
xml.parsers.expat.ExpatError: not well-formed:说明有未闭合标签、属性缺引号、裸露&等,得先用python -m xml.etree.ElementTree或在线校验器定位 - HTML 中内联
<script>const html = `<div>${x}`</script>被误解析:HTML-CSS-JS Prettify 会把模板字符串当标签处理,建议拆成单独 .js 文件再格式化 - 右下角显示 Plain Text 而非 XML/HTML:插件命令根本不会触发,手动点击状态栏切换语法,或保存为 .xml/.html 后缀
快捷键冲突和作用域限制是 90%「按了没反应」的根源
别急着重装插件,先查这三项:
- 按
Ctrl+Shift+P输入插件命令名(如JsPrettier、Pretty XML),看是否出现在列表里;没出现=插件未加载,需重启 Sublime 或重装 - 检查右下角语法标识是否匹配当前语言(JS 文件不能是 Plain Text,.vue 文件需设为 Vue Component)
- 打开
Preferences → Key Bindings,右侧用户配置里搜ctrl+alt+f类关键词,删掉被 Emmet、SideBarEnhancements 等插件占用的旧绑定
真正难搞的不是装插件,而是让 Sublime 在每次启动时准确继承 shell 的 PATH 并找到 prettier、black、xmllint —— macOS 用户尤其要注意:从桌面图标启动 Sublime 时,它往往读不到终端里的环境变量,必须从终端执行 subl 启动才可靠。











