! 按 tab 可快速生成标准 html5 骨架(含 、、、),但必须在 .html 文件中、语言模式为 html、光标位于空行或行首,且右下角显示“html”而非“plain text”;html:5 功能相同但稍冗长,旧式写法如 html5 或 html:5 无效。

! 按 Tab 生成 HTML5 骨架,但必须在纯 HTML 文件中
直接输入 ! 再按 Tab,VS Code 会输出完整的 HTML5 文档结构(含 、<code>、、 等)。这不是魔法,它依赖语言模式识别——如果右下角显示的是 Plain Text 或 JavaScript,! 完全不会响应。
常见卡点:
- 新建未保存的文件默认是
Plain Text,先保存为.html后缀,或手动点右下角语言标识选HTML -
!在.vue的<template></template>里不生效(它只认顶层 HTML 文件) - 写成
!(带空格)或!(前导空格),Emmet 直接忽略
html:5 和 html:4s 这类缩写能用,但没必要记
html:5 功能和 ! 完全一致,html:4s 生成 HTML4 严格模式骨架。它们本质是历史遗留别名,实际开发中几乎没人用——! 更快、更短、更可靠。
注意:html:5 区分大小写,HTML:5 或 Html:5 不触发;也不支持 html5(缺冒号)。
生成带 lang 和 charset 的骨架,靠属性语法补全
默认 ! 输出的是 lang="en" 和 UTF-8,但中文项目常要改 lang="zh-CN"。不能指望 Emmet 自动猜,得手动加:
- 输入
html[lang=zh-CN]>head>meta[charset=UTF-8]+title{页面标题}+body,再按 Tab —— 这比改完再手动编辑更快 -
[charset=UTF-8]中等号前后不能有空格,写成[charset = UTF-8]会导致属性截断为charset="" - 如果值含空格(如
viewport),必须加引号:meta[name=viewport][content="width=device-width, initial-scale=1.0"]
Vue / JSX 中想用骨架缩写?得手动映射语言模式
! 和 html:5 默认只在 .html 文件生效。在 .vue 或 .tsx 里输入,毫无反应——不是插件坏了,是 Emmet 根本没被激活。
解决办法是告诉 VS Code:“把 vue-html 当 HTML 用”:
- 打开设置(
Ctrl+,),搜emmet.includeLanguages - 点击 “Add Item”,填入:
"vue-html": "html"(Vue 单文件)或"javascriptreact": "html"(JSX) - 改完必须执行
Developer: Reload Window(Ctrl+Shift+P调出命令面板) - 之后在
<template></template>里输入!,就能正常展开
真正容易被忽略的是:映射后 ! 只在 <template></template> 区域生效,<script></script> 里仍无效——Emmet 不处理 JS 逻辑,只管 HTML 结构。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











