XML Tools是Sublime Text中唯一能真正解析XML结构并安全格式化的插件,必须通过Package Control安装、确保语法识别为XML、编码为无BOM UTF-8且XML语法合法才能正常工作;其格式化行为由内置规则决定,不支持细粒度配置,大文件或特殊需求应换用xmllint等工具。

XML Tools 插件是 Sublime Text 中唯一能真正解析 XML 结构并安全格式化的选择,其他标着“XML Formatter”“Pretty XML”的插件基本靠正则硬换行,会错误闭合 <img alt="Sublime如何一键格式化XML文件?" >、展开 、破坏命名空间——按快捷键没反应、缩进错乱、中文变问号,90% 都不是插件问题,而是前置条件没卡准。
怎么确认 XML Tools 装对了
别信“拖文件进 Packages 目录”或搜“XML Formatter”就装。必须走 Package Control 流程:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Install Package回车 - 等列表加载完,搜
XML Tools(注意拼写,不是 XMLTools 或 XML-Tools),选中安装 - 安装后重启 Sublime,或手动执行
Package Control: Satisfy Dependencies - 打开一个
.xml文件,按Ctrl+Shift+P搜XML Tools: Pretty Print (XML)—— 能出现且可执行才算到位
为什么 Ctrl+Alt+Shift+P 没反应
这不是快捷键失效,是三个硬性条件任一不满足就会静默失败:
- 右下角状态栏必须显示为
XML(带图标的那个),不是XML (Text)、Plain text或HTML;点它 → 搜XML→ 选图标版 - 编码必须是无 BOM 的
UTF-8:菜单File → Reopen with Encoding → UTF-8,再Save with Encoding → UTF-8 - XML 必须语法合法:根节点唯一、所有标签闭合、属性值用引号包裹、裸露的
&替换为&;否则插件直接报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—— 新版已废弃,改了无效 - 注释偏移、
展开成纯文本,是插件默认行为,无法关闭;依赖这些结构的,格式化前务必备份原始段落
大文件卡死、中文变问号、DOCTYPE 消失的应对方式
XML Tools 是内存全量加载,不是流式处理:
- 500KB 以内稳;超过 2MB 就容易卡死或弹无响应警告
- 中文变问号 ≠ 插件坏了,是编码没切对;
DOCTYPE消失、注释移位、CDATA 展开,不是 bug,是插件严格保留原始语义的默认行为 - 小文件(2MB)别硬刚,用命令行:
xmllint --format input.xml > output.xml - 真需要属性自动排序、长属性折行、命名空间归一化?别折腾配置,直接切工具链:Python 脚本调
xml.etree.ElementTree+minidom.toprettyxml
XML Tools 不提供开关,它按自己规则来,改不了。


















