必须通过package control: install package安装xml tools,装后重启或执行satisfy dependencies,并确保右下角语法为xml、编码为无bom utf-8,否则格式化无效。

怎么装对 XML Tools 而不是“看起来像”的假插件
XML 格式化必须用 XML Tools,别信 XML Formatter 或 Pretty XML——它们多数只是加换行,不解析语法,&、、自闭合标签全会出错。正确安装路径只有一条:Package Control: Install Package → 搜 XML Tools → 点击安装。装完必须重启 Sublime,或手动执行 Package Control: Satisfy Dependencies(尤其 Linux/macOS),否则命令面板里搜不到 XML Tools: Pretty Print (XML)。
Ctrl+Alt+Shift+P 没反应?先看右下角状态栏和编码
快捷键无效不是 bug,是两个硬性条件没达标:
- 右下角状态栏必须显示
XML(带图标的那个),不是Plain text、XML (Text)或HTML;点它 → 输入XML→ 选带图标项 - 文件编码必须是无 BOM 的
UTF-8:菜单File → Reopen with Encoding → UTF-8,再Save with Encoding → UTF-8 - 开头不能有隐藏字符(如 Windows 记事本生成的 BOM、
\x00),否则报UnicodeDecodeError - 文件里不能有未转义的
&(如price & tax),得先替换成&,否则XML Parse Error
格式化后注释跑偏、CDATA 展开、缩进错乱怎么办
XML Tools 不提供细粒度开关,但有两个配置能稳住基本盘:
- 打开
Preferences → Package Settings → XMLTools → Settings – User - 只改这两项:
"indentation_size": 2(数字,不是"2");"preserve_whitespace": false(设为false才允许重排空行) - 别碰
xml_indent_on_open_tag或line_wrap_length,新版已废弃,改了无效 - 注释位置偏移、
被展开成纯文本,是插件默认行为,无法关闭——依赖这些结构的,格式化前务必备份原始段落
别用 HTML-CSS-JS Prettify 处理 XML
这个插件专为 HTML/CSS/JS 设计,把 <tag attr="val"></tag> 当 HTML 处理,会错误闭合自闭合标签(比如改成 <tag attr="val"></tag>),直接破坏 XML 语义。它识别语法靠的是正则匹配,不是 XML 解析器。真要处理 XML,要么用 XML Tools,要么换 xmllint --format 或 Python 调 xml.etree.ElementTree ——后者可控性高,但需要写脚本。











