WXML文件在Sublime中不高亮是因为默认被识别为纯文本,需手动绑定语法:打开.wxml文件→点击右下角“Plain Text”→选择“Open all with current extension as… → WXML”;永久绑定则在Preferences → Settings – Syntax Specific中添加{"extensions": ["wxml"]};严禁设为HTML,否则{{}}和自定义组件标签将失去语义识别与补全。

WXML 文件不亮?必须手动绑定语法才能高亮
Sublime 默认把 .wxml 当纯文本,连 <view></view> 标签都不着色——这不是插件没装对,是压根没被识别为 WXML 代码。装完 sublime-wxml 后,必须主动绑定语法,否则所有补全、高亮、缩进都失效。
- 打开任意
pages/index/index.wxml,右下角点击当前语法名(比如 “Plain Text”)→ Open all with current extension as… → 选WXML - 想永久生效:菜单 Preferences → Settings – Syntax Specific,右侧加一行:
{"extensions": ["wxml"]} - 严禁用“设为 HTML”凑合——
{{ }}、<wxs></wxs>、自定义组件标签会彻底失去语义识别,补全也失效
补全效率低?改 auto_complete_triggers 才能触发组件生成
默认 Sublime 的补全只响应 . 或 :,但 WXML 组件标签(如 van-button、t-button)靠字母开头触发更自然。不改这个配置,敲 van 按 Tab 什么都不会出来。
- 菜单 Preferences → Settings,在用户配置里加这段:
"auto_complete_triggers": [
{ "characters": "abcdefghijklmnopqrstuvwxyz<", "selector": "text.wxml" }
]
- 重启 Sublime 后,输入
van-或t-再按Tab,就能从 snippet 补全出完整组件结构 - 如果用了多个组件库(如 TDesign + Vant),建议各自建独立 snippet,避免 key 冲突;key 名必须小写+中划线,比如
t-button,不能写成TButton
组件模板生成不准?检查 snippet 的 scope 和变量命名
很多用户复制的 snippet 在 WXML 中不弹出,或者补全后属性名错乱,根本原因是 scope 不匹配或变量占位符写法过时。微信小程序的 WXML snippet 必须声明 scope: text.wxml,且不能用 $1 这类通用占位符替代组件专属字段。
- 一个可用的按钮 snippet 示例(保存为
packages/User/w-button.sublime-snippet):
<![CDATA[<snippet>
<content><![CDATA[<van-button ${1:type="default"} ${2:size="normal"} ${3:bind:click="${4:handleClick}"}>${5:按钮文本}</van-button>]]></content>
<tabTrigger>van-b</tabTrigger>
<scope>text.wxml</scope>
</snippet>]]>
-
<scope>text.wxml</scope>是硬性要求,漏掉就完全不触发 - 所有
${n:xxx}占位符必须显式写出,不能省略冒号后的默认值,否则 Sublime 会跳过该字段 - 如果组件支持 slot(如
van-card),snippet 里要预留<slot></slot>位置,别直接写死内容
为什么 sublime-wxml 插件比“WXSS Syntax”类包更可靠
搜“WXSS”或“WeApp”容易装到过期/冲突包,它们常把 .wxss 强行映射成新语法,反而破坏 CSS 原生支持。而 sublime-wxml 只管 WXML,.wxss 直接复用 Sublime 自带的 CSS 语法——这才是最稳的路径。
-
.wxss是 CSS 超集,没有独立语法必要;强行加专用包会导致@import、@keyframes等高级特性报错或不提示 -
sublime-wxml作者是 zjz777 或 hizzgdev,GitHub 仓库名含sublime-wxml字样;避开名字带 “WXSS Syntax”、“WeApp Snippets” 的包 - 装完插件后,打开
app.wxss,确认右下角显示的是CSS而非某个奇怪的新语法名



















