VS Code没有独立的HTML自动补全规则导出功能,所谓“规则”实为settings.json中的配置项(如html.suggest.html5、emmet.triggerExpansionOnTab、html.customData等),其中仅html.customData指向的外部JSON文件(如html-data.json)才是可独立导出的完整规则载体。

导出的不是“规则”,而是 settings.json 里生效的配置项
VS Code 没有独立的「HTML自动补全规则导出」功能,所谓“自己配置的规则”,实际就是你在 settings.json 中手动添加或修改的几项关键配置。它们不存储在某个专用规则文件里,而是散落在用户设置中。导出的本质,是把这部分 JSON 片段提取出来、确保可复用。
常见被误认为“规则”的配置包括:html.suggest.html5、emmet.triggerExpansionOnTab、html.customData(指向自定义 schema)、emmet.includeLanguages 等。其中只有 html.customData 指向的外部 JSON 文件(如 html-data.json)是真正可独立导出的完整规则载体。
-
html.suggest.html5:布尔值,控制是否启用 HTML5 标签/属性基础提示,必须为true才能触发后续 type 值建议 -
emmet.triggerExpansionOnTab:决定 Tab 是否触发 Emmet 缩写,影响ul>li*3类补全行为 -
html.customData:数组,每个元素是本地路径(如"./html-data.json"),这才是你“自定义规则”的落脚点 -
emmet.includeLanguages:用于 Vue/JSX 等非 .html 文件中启用 HTML 补全,比如"vue-html": "html"
html.customData 指向的 JSON 文件才是真·可导出规则
如果你为自定义组件(如 )或扩展 type 值(如加 "search-bar")写过 html-data.json,那它就是你要导出的核心。这个文件必须符合 VS Code 的 HTML custom data schema 格式,且路径需相对于工作区根目录或绝对路径。
示例 html-data.json 内容:
{
"version": 1.1,
"tags": [
{
"name": "my-input",
"attributes": [
{
"name": "mode",
"values": ["text", "password", "search-bar"]
}
]
}
]
}
导出时直接复制该文件即可。注意:settings.json 中的 html.customData 路径必须能正确解析——如果用相对路径,导出后需同步迁移该 JSON 文件;若用绝对路径(如 /Users/me/config/html-data.json),则无法跨机器复用。
别漏掉 emmet.includeLanguages —— Vue 和模板字符串依赖它
很多人在 .vue 或 JS 模板字符串里写 ` 时发现补全失效,问题常出在这里。VS Code 默认只对 .html 文件启用 Emmet,其他语言需显式声明。
检查你的 settings.json 是否包含类似配置:
-
"javascript": "html"→ 让 JS 字符串内支持 Emmet(含模板字符串) -
"vue-html": "html"→ 让 Vue 单文件组件的区域启用 HTML 补全 -
"typescriptreact": "html"→ JSX 中的 HTML 标签补全(需配合对应语言插件)
这些映射本身不可“导出为规则”,但必须随 settings.json 一起备份。缺了它们,即使 html.customData 正确,也只在纯 HTML 文件中生效。
导出前务必验证 html.suggest.experimental.customHtml5 是否启用
input 的 type="|" 引号内补全(如敲 t 提示 text、te 提示 tel)依赖实验性开关:html.suggest.experimental.customHtml5。它默认关闭,且不写入 GUI 设置界面,只能通过 settings.json 手动开启。
导出配置时容易忽略这一项,导致迁移后 type 值不提示。确认它存在且为 true:
- 仅 VS Code 1.84+ 支持,旧版本无效
- 必须与
html.suggest.html5: true共存才起作用 - 它不控制标准值(如
email),但影响拼写纠错和部分浏览器私有值(如search在 Safari 的行为提示)
真正的难点不在导出动作本身,而在于补全是否在目标环境的上下文里被激活——语言模式、文件关联、插件冲突,任何一个环节断开,导出的配置就只是静态文本。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











