Sublime 中 XML 无语法高亮需手动设为 XML 语法;< 不自动补全因 HTML 插件干扰,应禁用或装 XML Tools;格式化须用 XML Tools 而非通用工具;XSLT 不可在 Sublime 中直接执行,需外部引擎。

XML 文件没语法高亮?检查文件关联是否正确
Sublime 默认不会把 .xml 或 .xslt 当作 XML 类型处理,尤其从浏览器下载、或后缀名不标准(比如 style.xsl)时,编辑器可能识别成纯文本。结果就是没有标签配对高亮、缩进错乱、无法折叠节点。
- 右下角状态栏查看当前语法类型,如果不是 XML,点它 → 选
XML(不是HTML或Text) - 永久生效:打开文件 →
View→Set Syntax→Open all with current extension as……→ 选XML - 对
.xsl或.xslt文件,建议统一用XML语法;XSLT专用插件(如SublimeXSLT)反而容易和现代 XSLT 3.0+ 特性冲突
输入 < 后不自动补全标签?关掉 HTML 补全干扰
Sublime 自带的 HTML 插件会劫持 XML 场景下的标签补全逻辑——比如输 <div 就强行补成 <div></div>,但在 XML 里这根本非法;更糟的是它还可能把 <?xml 声明当成注释处理。
- 临时禁用:按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac)→ 输入Preferences: Settings – Syntax Specific→ 在右侧加一行:"auto_complete_triggers": [] - 更稳妥的做法:安装
XML Tools插件(通过 Package Control),它提供XML: Close Tag命令(快捷键Ctrl+Alt+.),只在光标位于开始标签内时才补闭合标签,不瞎猜 - 别开
html_completions插件,它和 XML 场景天然互斥
格式化 XML 总崩坏?用 XML Tools 而非通用美化工具
用 JsPrettier、Beautify 这类通用格式化插件处理 XML,常导致属性换行错位、CDATA 块被破坏、命名空间前缀丢失——因为它们默认按 HTML 规则解析,不认 xmlns、xsi:schemaLocation 这些 XML 特有结构。
- 装好
XML Tools后,选中内容 →Ctrl+Shift+P→ 执行XML Tools: Pretty Print (XML) - 它能保留注释位置、不碰 CDATA 内容、正确缩进嵌套的
<xsl:for-each>等 XSLT 指令 - 如果格式化后出现
UnicodeDecodeError,说明文件含 BOM 或编码混用,先用File→Reopen with Encoding→ 选UTF-8再试
XSLT 调试卡在空白输出?确认 Sublime 不执行转换
Sublime 是编辑器,不是处理器。有人误以为装了 XML 插件就能跑 XSLT,结果改完 transform.xsl 点保存,啥也没发生——这是对的,它本就不该发生。
- XSLT 必须靠外部引擎执行:命令行用
saxon(推荐)、xsltproc,或浏览器(仅限简单 XSLT 1.0) - 可在 Sublime 配置构建系统(
Tools→Build System→New Build System),写死调用saxon -s:input.xml -xsl:transform.xsl -o:output.html - 注意路径:Sublime 构建系统默认工作目录是当前文件所在目录,别用绝对路径写死输入文件,否则换项目就失效
XML 的坑不在语法多难,而在编辑器“自作聪明”的兼容逻辑。关掉 HTML 相关补全、弃用通用格式化、接受 Sublime 不跑 XSLT——这三件事理清了,剩下只是配个顺手的快捷键。