xml tools是唯一可靠插件,须通过package control安装并验证命令面板可执行“xml tools: pretty print (xml)”;格式化失败主因是裸露&、属性无引号或编码含bom;缩进可调但注释与cdata行为不可控,大文件应换用xmllint。

Sublime Text 本身不解析 XML,所谓“深度解析”靠的是插件能力;真正能处理混乱报文、保留语义、报错精准的只有 XML Tools——其他名字带“XML”的插件多数只是加换行,甚至把 <img> 错闭合成 <img>。
怎么确认装对了 XML Tools 插件
搜“XML Formatter”“Pretty XML”这类插件基本白装,它们不走 XML 解析器,只做字符串替换。唯一靠谱的是 XML Tools:
- 必须通过
Package Control: Install Package安装,拖文件进Packages/目录或解压安装会失败 - 装完后打开命令面板
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入XML Tools: Pretty Print (XML)能出现且可执行才算到位 - 右下角状态栏点击语法名,必须选带图标的
XML,不是XML (Text)或Plain text - 如果快捷键
Ctrl+Alt+Shift+P没反应,先验证命令面板里能不能调出该命令——不能,说明插件根本没加载成功
XML Tools 格式化失败的三个硬性门槛
它不是“点一下就变整齐”,而是先过解析关。卡住基本是因为这三类问题:
-
&字符裸露:比如price=10&20必须写成price=10&20,否则触发xml.parsers.expat.ExpatError - 属性值没引号:
<node id="123"></node>是非法 XML,得改成<node id="123"></node>或<node id="123"></node> - 编码含 BOM:Windows 记事本存的 UTF-8 常带 BOM,导致
UnicodeDecodeError;解决方式是菜单File → Reopen with Encoding → UTF-8,再Save with Encoding → UTF-8
最稳的验证法:python -c "import xml.etree.ElementTree as ET; ET.parse('test.xml')",报错信息比 Sublime 弹窗更具体。
缩进和空行能调,但注释和 CDATA 不能动
XML Tools 不提供“注释对齐”或“CDATA 折行”开关,它的行为是硬编码的。能改的只有两个关键项:
-
"indentation_size": 4(数字,不是字符串"4"),控制缩进空格数 -
"preserve_whitespace": false,设为false才允许重排空行;设为true反而让缩进更乱
别碰 xml_indent_on_open_tag 或 line_wrap_length,新版已废弃;expand_entities 设为 true 后, 会变成 <code>,按需开启即可。
大文件或特殊结构建议换工具链
XML Tools 是内存全量加载,不是流式处理。超过 2MB 就容易卡死、无响应,中文变问号、DOCTYPE 消失都是典型信号:
- 500KB 以内:放心用
XML Tools - 500KB–2MB:复制内容到新窗口再格式化,避免阻塞主编辑器
- >2MB 或含大量实体/命名空间:直接切到终端,用
xmllint --format input.xml > output.xml(需提前装libxml2)
真正麻烦的不是怎么按快捷键,而是你是否接受它把 展开成纯文本、把注释挪到上一行——这些不是 bug,是设计选择,没法关。











