XML Tools 是 Sublime Text 中唯一可靠实现 XML 自动排版的插件;快捷键失效主因是状态栏未识别为 XML、编码非无 BOM UTF-8 或 XML 结构非法;格式化后注释偏移、CDATA 展开属正常规范行为;大文件应改用 xmllint 或 Python 验证处理。

XML Tools 是目前 Sublime Text 中唯一能真正实现 XML 标签自动排版(即缩进、换行、层级对齐)的可靠插件,原生不支持,其他名字带“XML”“Pretty”的插件大概率只是加空行或误闭合标签。
为什么 Ctrl+Alt+Shift+P 没反应?先过这三关
快捷键失效几乎从不因为插件没装好,而是卡在基础识别环节:
- 右下角状态栏必须显示
XML(带图标),不是XML (Text)或Plain text;点它 → 搜索XML→ 选第一个 - 文件编码必须是无 BOM 的
UTF-8:菜单File → Reopen with Encoding → UTF-8,再Save with Encoding → UTF-8 - XML 必须结构合法:不能有裸露的
&(得写成&)、未闭合标签、或 <code>>出现在文本中、开头含\ufeff(BOM)等
XML Tools 格式化后注释偏移、CDATA 被展开,正常吗?
完全正常,这不是 bug,是插件严格遵循 XML 规范的默认行为:
-
块会被解析为普通文本节点并重排缩进,原始位置不保留 -
<!-- comment -->同样按内容节点处理,可能被移到新行或缩进错位 - 属性不会重排、不换行、不排序;自闭合标签如
<img alt="Sublime Text怎么自动排版XML标签" >可能被展开为<img alt="Sublime Text怎么自动排版XML标签" >(取决于底层解析器) - 想控制这些细节?插件不提供开关——此时该切到
xmllint --format或 Python 脚本
大文件(>2MB)卡死、中文变问号,怎么办?
XML Tools 是内存全量加载,不是流式处理。超限就会卡顿甚至崩溃:
- 临时方案:复制 XML 内容 → 新建空白窗口 →
View → Syntax → XML→ 再格式化,避开原文件锁和编码残留 - 稳定方案:终端执行
xmllint --format input.xml > output.xml(macOS 用brew install libxml2,Ubuntu 用sudo apt install libxml2-utils) - 验证合法性:用 Python 一行检查
python -c "import xml.etree.ElementTree as ET; ET.parse('input.xml'); print('valid')",不报错才继续
真正麻烦的从来不是按哪个键,而是你是否愿意在格式化前花 30 秒确认编码、BOM 和 & 转义——这些地方一漏,所有快捷键都是摆设。


















