emmet 不支持下划线开头的缩写,\_html 会被语法解析器直接忽略;应使用标准缩写如 html:5 生成完整 html 结构,注意符号合法性、无空格、无全角标点。

Emmet 不支持下划线开头的缩写,_html 会直接被忽略
Emmet 的语法解析器把 _html 当作非法标识符——下划线开头不是合法的标签名或缩写前缀,输入后按 Tab 或 Enter 完全没反应。这不是配置问题,是语法层面不识别。想用 Emmet 生成 HTML 结构,得从标准缩写出发,比如 html:5 或 div,而不是自创带下划线的写法。
html:5 是最常用且兼容性最好的 HTML 模板缩写
在空行输入 html:5 再触发 Emmet(通常是 Tab),会生成带 DOCTYPE、、、 的完整结构,且自动包含 <meta charset="UTF-8"> 和 <title></title>。这个缩写在 VS Code、Sublime Text、WebStorm 等主流编辑器中都开箱即用,不需要额外插件或配置。
常见误操作:
- 输成
html5(少冒号)→ Emmet 不识别,只当普通文本 - 在已有标签内输入 → Emmet 可能误判上下文,建议在空白行或
内新起一行再用 - 用了中文输入法 → 即使看起来是英文冒号,实际可能是全角符号,导致失败
嵌套与重复写法必须用正确符号分隔,否则结构错乱
Emmet 的层级靠 >(子元素)、+(同级)、*(重复)控制,符号前后不能有空格,也不能混用中文标点。
例如想生成 3 个带 class 的 <div>:
<pre class="brush:php;toolbar:false;">div.item*3</pre>
<p>而不是:</p><div class="aritcle_card flexRow artxards">
<div class="artcardd flexRow">
<a class="aritcle_card_img" rel="nofollow" href="/xiazai/skill6712" title="Wechat HTML Publisher"><img
src="https://img.php.cn/upload/skill/000/000/081/179109368394970.jpg" alt="Wechat HTML Publisher" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a rel="nofollow" href="/xiazai/skill6712" title="Wechat HTML Publisher" class="overflowclass">Wechat HTML Publisher</a>
<p class="overflowclass">直接上传HTML富文本到微信公众号草稿箱。支持完整的HTML格式,无需Markdown转换。</p>
</div>
<a rel="nofollow" href="/xiazai/skill6712" title="Wechat HTML Publisher" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span>
</a>
</div>
</div>
<ul>
<li>
<code>div .item *3(空格破坏语法)
div.item×3(用中文乘号)div.item+div.item+div.item(冗余,失去 Emmet 意义)再比如:一个 <ul></ul> 包 5 个 <li>,每个含文字 “Item” 加序号:
ul>li{Item $}*5
自定义缩写要改配置,但多数场景没必要
虽然可以通过编辑器设置添加类似 _html 的自定义缩写,但实际收益很低:
- VS Code 需修改
emerald.emmet.extensionsPath或用户 snippets,路径和格式易出错 - 团队协作时,别人打开你的文件不会自动继承这些缩写
- 真正节省时间的是熟练用
html:5、div>p{hello}、table>tr*3>td*2这类高频组合,不是造新缩写
如果你坚持要加,VS Code 中可在 settings.json 里配 "emerald.emmet.variables" 或用 emerald.emmet.snippets 扩展,但注意变量名不能以下划线开头(Emmet 解析器仍会跳过)。
真正卡住人的往往不是“怎么加”,而是没意识到 Emmet 对字符合法性极其严格——多一个空格、错一个符号、混一个全角标点,整个缩写就失效。先跑通标准写法,再考虑定制。










