Emmet在VSCode中默认启用,失效主因是语言模式非HTML、光标位置不当或Tab被劫持;需确保右下角显示HTML、文件已保存为.html、光标在缩写末尾或冒号后。

Emmet 在 VSCode 里默认就开着,别急着改配置
VSCode 1.40+ 版本起已内置 Emmet,emmet.enable 默认为 true,无需安装插件或手动开启。你敲 div.container 按 Tab 没反应,大概率不是配置没开,而是环境没对上——先盯住右下角语言模式和光标位置,比翻 settings.json 更快定位问题。
HTML 缩写不展开?先确认这三件事
常见现象:ul>li*3 按 Tab 只换行、不生成结构。
- 右下角状态栏必须显示
HTML(不是Plain Text、Vue或JavaScript);点它手动切一次最稳 - 文件必须已保存且后缀为
.html或.htm;新建未保存的临时文件常被识别为纯文本,Emmet 不触发 - 光标必须在行尾,或紧贴缩写末尾(如
div.container|✅,div .container|❌ 中间有空格会解析失败)
CSS 缩写按 Tab 没反应?只在声明值位置生效
CSS Emmet 不补全选择器,只补全属性值,而且只在冒号 : 后、分号 ; 前响应。
- 正确流程:先写
margin:→ 换行或空格 → 输入m10→ 按Tab→ 得到margin: 10px; -
m10是合法缩写,但mt10才是margin-top: 10px;;w100p→width: 100%;,w100→width: 100px; - 在
.vue的<style>块中,需确保emmet.syntaxProfiles里有"vue-html": "html",否则可能识别为普通文本
Vue/JSX 文件里缩写失效?靠 emmet.includeLanguages 接入
VSCode 默认只对 .html 和 .css 启用 Emmet,.vue 和 .jsx 需显式映射。
立即学习“前端免费学习笔记(深入)”;
-
.vue的<template>区域:加"vue-html": "html"到emmet.includeLanguages -
.vue的<script setup>或 JSX:加"javascriptreact": "html"(不是javascript) - 改完设置后必须重载窗口(
Ctrl+Shift+P→Developer: Reload Window),热更新不生效 - 别碰
emmet.extensionsPath,2026 年已弃用,硬改反而导致冲突
真正卡住的点往往不是缩写不会写,而是语言模式没对、Tab 被其他插件劫持、或者光标停在了属性值中间——这些地方容易被忽略,但修复起来最快。



















