推荐直接安装XML Tools插件,它开箱即用、基于DOM解析、支持缩进自定义及错误定位;Indent XML则静默失效、不报错、缩进不可调,且已多年未更新。

别装 Indent XML,直接装 XML Tools —— 它开箱即用、解析合法、支持缩进自定义,而 Indent XML 既不报错也不提示,静默失效是常态。
XML Tools 是目前唯一推荐的 XML 格式化插件
它不是“又一个格式化工具”,而是真正基于 xml.etree.ElementTree 做 DOM 解析后重排的插件,能识别标签嵌套、属性引号、CDATA 和注释,并在出错时弹窗提示具体行号和错误类型(比如 Opening and ending tag mismatch)。安装路径唯一可靠:
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Install Package回车 - 等待列表加载完成,输入
XML Tools,**必须全名匹配**,不要选XML Formatter或Pretty XML - 安装后无需重启,但需手动确认语法:打开 .xml 文件,右下角点击当前语法名,选
XML(不是XML (Text)或Plain text)
快捷键没反应?先看命令面板里有没有 XML Tools: Pretty Print
很多用户按了 Ctrl+Alt+Shift+P 没反应,其实是插件根本没加载成功。验证方式很简单:
- 再次打开命令面板(
Ctrl+Shift+P),输入XML Tools: Pretty Print - 如果列表里没有,说明插件未激活——重装一次,或执行
Package Control: Satisfy Dependencies(部分 Sublime Text 4 构建版本需要此步) - 如果命令存在但执行后无变化,检查文件编码:菜单
File → Reopen with Encoding → UTF-8,再Save with Encoding → UTF-8(必须是无 BOM 的 UTF-8)
格式化失败的三个硬性前提缺一不可
XML Tools 不会跳过错误,但也不会猜测你想怎么修。它只在满足全部条件时才工作:
-
<root><item>abc</item>这种未闭合的标签,会直接报错,不格式化 - 裸露的
&(应写成&)、控制字符(如\x00)、BOM 头,都会导致UnicodeDecodeError或解析中断 - 根节点不唯一(比如文件开头就有文本或换行)也会被判定为 malformed,需手动清理首尾空白
缩进宽度、Tab 还是空格,全都能改
默认 2 空格不是铁律。打开 Preferences → Package Settings → XML Tools → Settings,修改以下字段即可:
-
"indentation": " "→ 设为 4 空格 -
"indentation": "\t"→ 改用 Tab -
"preserve_comments": true→ 防止注释被挤到行尾(虽不能完全对齐,但比默认好)
注意:Indent XML 插件根本不读这个配置,它的缩进是硬编码死的,且无法关闭换行逻辑——哪怕 <img src="x"/> 这种单行自闭合标签,它也会强行拆成三行。


















