Emmet 2.0 是 VSCode v1.14 起集成的核心升级,提升多语言支持、触发逻辑与框架适配:默认建议列表中显示缩写,原生支持 JSX/Vue/TSX,智能解析 Vue 指令与复杂嵌套结构。

VSCode 的 Emmet 2.0 不是单独安装的插件,而是从 v1.14 开始逐步集成到编辑器核心中的重大升级。它不是“更炫”的功能堆砌,而是更智能、更贴合现代开发场景的底层重构——尤其在多语言支持、触发逻辑和框架适配三方面带来了实质性提升。
更自然的缩写触发方式
旧版 Emmet 默认用 Tab 展开,常与缩进冲突;Emmet 2.0 默认改为「在建议列表中显示缩写」,不自动抢占 Tab 键。这意味着:
- 按 Ctrl+Space(或 Cmd+Space)调出建议列表,Emmet 缩写会和其他补全项一起出现,选中即展开
- 如仍习惯用 Tab,只需在设置中开启 "emmet.triggerExpansionOnTab": true
- 避免了“想缩进却意外展开 div”这类高频误操作
原生支持 JSX、Vue、TSX 等非 HTML 文件
不再依赖插件“硬塞”,而是通过语言映射精准启用:
- Vue 单文件组件中,在
区域直接输入div.card>h2.title+p.desc即可展开 - React/JSX 文件中,
.container>header+h1{Title}+ul>li*3会自动生成闭合标签,并把.btn转为className="btn" - 关键配置示例:
"emmet.includeLanguages": { "javascript": "javascriptreact", "vue-html": "html", "typescript": "typescriptreact" }
更灵活的指令与属性缩写(尤其对 Vue 生效)
Emmet 2.0 原生识别常见 Vue 指令语法,无需额外插件:
-
div[v-if="loading"]>p{Loading...}→ 生成带v-if的元素 -
input:model.lazy→ 自动转为 -
button@click.stop.prevent="handleClick"→ 支持修饰符链式写法 - 属性值支持双引号包裹、变量表达式,贴近真实模板书写习惯
缩写解析能力更强,长链结构更稳定
旧版遇到复杂嵌套(如 section*5>(h2>{章节$})+(p*3>lorem))容易失效;Emmet 2.0 解析引擎升级后:
- 支持多层嵌套 + 计数符(
$)+ 内容占位({text})组合使用 -
table>tr*3>td{$}*4可稳定生成 3 行 × 4 列表格,内容自动编号为 1–4 - 对空格、换行、括号嵌套的容错性明显提升,减少“写了却没反应”的挫败感
基本上就这些。它不靠花哨噱头,而是把“该在哪生效”“怎么不干扰你”“写得像人话”这三件事真正做稳了。










