tab键不展开emmet缩写,先确认三件事:语言模式是否为html(右下角显示)、光标是否在行尾或字母数字后、emmet.triggerexpansionontab是否设为true。

Tab 键没反应?先确认这三件事
Emmet 在 VSCode 里默认就开着,但缩写不展开,90% 是卡在这三个地方:语言模式不是 HTML、光标不在可触发位置、emmet.triggerExpansionOnTab 被设为 false。
- 右下角状态栏必须显示
HTML(不是Plain Text或JavaScript),点它手动切过去 - 光标得在行尾,或紧跟字母/数字之后;写在
<script></script>里、字符串中、注释里,一律不生效 - 打开设置搜
emmet.triggerExpansionOnTab,确保值是true;再顺手检查editor.tabCompletion是on而不是onlySnippets
! 不是感叹号,是 HTML5 骨架的唯一快捷键
! 按 Tab 就生成完整 HTML5 结构,html:5 和 html5 已废弃,新版 VSCode 完全不认。
- 必须在空行或标签外输入,写在
<div> 里面无效 <li>生成的 <code>默认是英文,中文项目记得手动改成lang="zh-CN" - 如果按了没反应,别调
emmet.includeLanguages——那是给其他语言用的,!只依赖当前是否为 HTML 模式 -
{}必须紧贴标签名:div>p{hello}有效,div > p {hello}失效 - 属性值引号不能省:
input[type="text"]行,input[type=text]在部分版本会崩 -
$放哪都行:img[src="a$.jpg"]*2→a1.jpg、a2.jpg;li.item$*3→class="item1"到item3 - Vue 单文件组件:确保光标在
<template></template>标签内,且语言模式是Vue HTML(不是Vue或HTML) - JSX/TSX 文件需手动加配置:
"emmet.includeLanguages": {"javascriptreact": "html"},否则div.container按 Tab 就是普通补全 -
emeraldwalk.runonsave这类插件常偷偷劫持 Tab 键,禁用它比反复调设置更直接
ul>li*3 展不开?空格和符号位置决定成败
Emmet 对空格极其敏感:ul>li*3 成功,ul > li *3(中间加空格)就只出一个空 <li>。
Vue / JSX 里怎么用?别指望自动生效
Emmet 默认只在 .html 文件或 <template></template> 块内工作,<script></script> 和 <style></style> 里完全不响应。
最易被忽略的一点:自定义缩写改完 settings.json 后,必须 Developer: Reload Window 才生效,改完保存不重启等于白改。











