Emmet这东西,用好了是真快,用不好就是各种按不下去的尴尬。很多人在群里问“为什么我写的缩写没反应”,答案往往不是缩写本身的问题,而是几个非常基础的细节没对齐。今天就把这几个最容易卡住人的点掰开揉碎了讲清楚。

Emmet 不是万能缩写手册,它只在语言模式正确、语法精准、上下文匹配时才可靠展开;所谓“万能”其实是误读,真正高效的是掌握三类结构逻辑 + 两个关键配置。

VSCode配置Emmet高级技巧_HTML标签一键生成的万能缩写手册

为什么 div.container>h2.title+ul.list>li*3 按 Tab 没反应

你写了一个很标准的缩写,Tab键按下去,结果光标纹丝不动。这时候千万别急着怀疑自己是不是写错了——先看看编辑器右下角的状态栏,语言模式是不是 Plain Text 或者 Ja vaScript?如果是,点一下把它切到 HTML,问题就解决了。文件没保存、后缀名缺失时,VSCode会默认当成纯文本处理,这也是一个常见陷阱。

另一个容易被忽略的原因:你装的插件太多了。Prettier、Auto Rename Tag 这些插件可能会“劫持”Tab键,导致Emmet根本没机会响应。去 settings.json 里翻一下,看看有没有 "emerald.emmetEnabled": false 这种旧配置残留,或者 emmet.triggerExpansionOnTab 被改成了 false。默认它是 true,但不少人之前为了调别的功能顺手改过,后来就忘了。

ul>li*5ul>li{Item $}*5 的实际差异

这两个缩写看起来差不多,但输出结果差别很大,关键在于花括号和计数符的位置。

在 Vue/JSX 中让 section>div>p 正常展开

Vue单文件组件和JSX默认是不启用Emmet的,必须手动告诉VSCode“这里也当HTML处理”。