Sublime Text 默认不支持 XML 格式化,需安装 XMLTools 插件;推荐通过右键菜单“XML Tools → Pretty Print (XML)”调用,确保文件类型识别为 XML,并配置 indentation_size 和 preserve_whitespace 参数优化效果。

Sublime Text 默认不支持 XML 格式化,必须装插件
Sublime Text 原生没有 XML 格式化功能,直接按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)搜 “format” 是找不到相关命令的。你看到的“Format”选项只对部分语言(如 JS、JSON)生效,对 .xml 文件完全无效。
实操建议:
- 装
XMLTools插件最稳妥——它专为 XML 设计,支持缩进、换行、属性排序(可选)、CDATA 处理等 - 别用
HTML-CSS-JS Prettify或通用格式化插件,它们会把<tag attr="val"></tag>错误转成 HTML 风格(比如自动闭合自闭合标签),破坏 XML 语义 - 安装后重启 Sublime 或手动刷新插件列表,确保
XMLTools的菜单项出现在右键上下文里
XMLTools 格式化命令在哪,怎么触发
装好 XMLTools 后,格式化入口有三个,但只有一个是可靠的:
- 右键菜单 →
XML Tools → Pretty Print (XML)—— 这是唯一推荐方式,它会读取当前文件的编码、保留注释和 CDATA,且不改动内容逻辑 -
Ctrl+Alt+Shift+P(Windows/Linux)或Cmd+Alt+Shift+P(macOS)快捷键 —— 仅在文件类型被正确识别为XML时有效;如果右下角显示的是Plain text或HTML,快捷键不响应 - 命令面板搜
Pretty Print—— 可能出现多个结果,务必选带(XML)后缀的那个,否则可能调用错的解析器
常见错误现象:点了“Pretty Print”没反应,大概率是文件未被识别为 XML 类型。解决方法是点击右下角语言名 → 搜 XML → 选 XML,不是 XML (Text) 或 XML (Sublime)。
格式化后标签换行/缩进异常,怎么调参数
XMLTools 默认缩进是 2 空格,换行规则较保守(比如不拆开长属性),但它的配置项藏得深,改错地方反而会让格式化失效:
- 配置路径是:
Preferences → Package Settings → XMLTools → Settings – User - 关键参数只有两个有用:
"indentation_size"(数字,非字符串)和"preserve_whitespace"(布尔值,设为false才允许重排空行) - 不要碰
"xml_indent_on_open_tag"或"line_wrap_length"—— 这些是旧版遗留字段,新版已忽略,改了也没用 - 如果格式化后所有属性挤在一行,检查是否打开了
"join_lines"(默认false),设为true会强制合并,应保持关闭
大文件卡死、中文乱码、DOCTYPE 被删怎么办
XMLTools 对大文件(>5MB)和含特殊声明的 XML 不够健壮,容易出这三类问题:
- 卡死:关闭
"validate_on_pretty_print"(设为false),验证 DOM 结构会触发完整解析,小文件没问题,大文件直接无响应 - 中文变问号:确认文件本身是 UTF-8 编码(
File → Reopen with Encoding → UTF-8),XMLTools不做编码转换,只按当前编码读取;若 XML 声明写的是encoding="GBK",需先转存为 UTF-8 再格式化 -
..>消失:这是正常行为——XMLTools的Pretty Print本质是解析 + 序列化,而 DOCTYPE 属于 DTD 信息,不在标准 DOM 树中;如需保留,改用XML Tools → Reindent Lines(仅缩进,不解析)
真正麻烦的是混合命名空间或带 XSLT 的 XML,这种文件 XMLTools 会丢掉前缀绑定或错乱 xsl: 前缀。这时候别硬格式化,用命令行工具更稳,比如 xmllint --format file.xml。

















