VSCode使用Emmet缩写提升HTML自动补全效率
胖萱小哥_1505
发布时间:2026-11-12 07:40:21
|
143人浏览过
|
来源于php中文网
原创
Emmet缩写在VSCode中默认不生效,需确保emmet.triggerExpansionOnTab为true且语言模式为HTML;输入div按Tab无反应主因是触发开关关闭或语言模式非HTML。

Emmet 缩写在 VSCode 中默认不生效,不是你手速慢,是它根本没被“叫醒”——必须确认 emmet.triggerExpansionOnTab 为 true,且当前文件语言模式是 HTML。
为什么输入 div 按 Tab 没反应?
最常见原因是 Emmet 展开逻辑被禁用。VSCode 新版本默认关闭了 Tab 触发,哪怕你装了插件、写了缩写,div + Tab 也只会原样留着。
后面)
! 只在文件开头、且光标在首行第一列时才生成完整 HTML5 骨架;若已存在内容,它会退化为普通 div 标签
ul>li*3 要求光标不在任何标签属性值内部(比如不能卡在 class="|" 里)
嵌套过深(如 header>nav>ul>li>a>span*2)可能因解析超时失败,可分步展开或加空格重试
如何让 div.container 正确生成带 class 的元素?
这个看似基础的操作,实际受两个隐藏规则约束:一是点号(.)必须紧跟标签名无空格,二是 class 名不能含非法字符(如中文、空格、横线开头)。
DeepBI DHTML 页面生成器
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur
下载
立即学习“前端免费学习笔记(深入)”;
- ✅ 正确:
div.container、button.btn.btn-lg、input:text
- ❌ 失效:
div .container(中间有空格)、div.my-class(某些旧版对横线支持不稳定,建议改用 myClass)、div.按钮(中文 class 不被解析)
- 属性和内容要显式标注:
a[href="#"]{Click} 才能生成带 href 和文本的链接;a{Click} 不会自动补 href
- 若想给已有文本加包裹结构,用
Ctrl+E(Windows/Linux)选中后呼出 “Wrap with Abbreviation”,再输 section>article 即可
自定义缩写(如 cc 生成版权注释)为何不生效?
自定义缩写不是写完 snippets.json 就立刻可用,路径、格式、重启三者缺一不可。
-
emmet.extensionsPath 必须指向包含 snippets.json 的**父目录**,不是文件本身(例如填 ".vscode/emmet",而非 ".vscode/emmet/snippets.json")
-
snippets.json 必须是合法 JSON,且顶层键名严格为 "html",不能是 "HTML" 或 "Html"
- 修改后必须**完全重启 VSCode**(不是重载窗口),否则缓存未清,新缩写不会加载
- 避免覆盖内置缩写:
cc 安全,但不要定义 ul 或 div,否则可能破坏原有行为
真正卡住人的往往不是语法记不住,而是编辑器状态没调对——语言模式、触发开关、路径拼写,三个地方错一个,整个 Emmet 就静音。别急着查缩写表,先看右下角是不是 HTML,再按 Ctrl+, 搜 trigger 确认开关开着。