讲师中心 微信公众号
AI工具推荐 视频效率加速

VSCode怎么配置Emmet自定义缩写规则_VSCode如何添加和修改Emmet代码生成模板【详解】

落杰酱_5194

落杰酱_5194

发布时间:2026-03-30 15:03:00

|

502人浏览过

|

来源于php中文网

原创

Emmet缩写不生效需检查emmet.includeLanguages配置,将jsx、vue等语言ID映射到html或css;再通过emmet.variables注入变量、emmet.snippets自定义片段;注意语言模式切换、JSON格式正确及重启VSCode生效。

vscode怎么配置emmet自定义缩写规则_vscode如何添加和修改emmet代码生成模板【详解】

Emmet缩写不生效?先检查 emmet.includeLanguages 配置

VSCode 默认只在 HTML、CSS 等少数语言中启用 Emmet,遇到 .jsx、.vue 或自定义后缀文件时缩写直接“失灵”,不是插件坏了,是没告诉 VSCode 该在哪用。

实操建议:

  • 打开设置(Cmd+, 或 Ctrl+,),搜 emmet.includeLanguages
  • 点击「编辑 in settings.json」,添加映射关系,比如:
    "emmet.includeLanguages": {
      "javascriptreact": "html",
      "typescriptreact": "html",
      "vue-html": "html",
      "astro": "html"
    }
  • 注意键名必须是 VSCode 识别的语言 ID(不是文件后缀),可用 Ctrl+Shift+P → 「Change Language Mode」确认当前文件真实语言 ID
  • 值填 "html" 表示复用 HTML 缩写规则;填 "css" 则走 CSS 规则(如 m10 → margin: 10px;)

想改 ul>li*5 的输出结构?改 emmet.variables 和 emmet.snippets

默认 ul>li*5 生成的是无 class 的裸 <li></li>,但项目里往往需要带 class 或 data 属性。这不是靠“扩展包”解决的,而是靠变量注入和片段重写。

实操建议:

  • 在 settings.json 中加 emmet.variables,让缩写动态插入项目级常量:
    "emmet.variables": {
      "lang": "zh-CN",
      "charset": "UTF-8",
      "customClass": "list-item"
    }
    然后写 ul>li.item$*5 就能产出 <li class="list-item1"></li>
  • 若要彻底替换行为(比如把 ul>li*3 变成带 key 的 React 列表),用 emmet.snippets 自定义片段:
    "emmet.snippets": {
      "html": {
        "ul>li*": "ul.list-unstyled>li.list-item[key='$!']{$0}"
      }
    }
    注意:该配置会覆盖默认缩写,慎用通配符
  • 自定义片段只对指定语言生效,"html" 键名不能写成 "javascriptreact" —— 后者需单独配,且值里只能用 HTML 片段语法

Vue 单文件组件里 template 区域缩写无效?语言模式没切对

很多人在 .vue 文件里敲 div.container 没反应,其实是 VSCode 把整个文件当成了 vue 语言,而 Emmet 默认不认这个 ID;它只认 vue-html(template 区)和 vue(script 区)。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载

实操建议:

  • 光标落在 <template> 内,按 Ctrl+Shift+P → 输入「Change Language Mode」→ 选 Vue HTML(ID 就是 vue-html)
  • 确保 emmet.includeLanguages 已包含 "vue-html": "html"(上文已提)
  • 别依赖文件后缀自动识别:VSCode 有时会把 .vue 错判为 vue 语言(即 script 区模式),此时 template 区缩写必然失效
  • 可装官方插件 Volar 替代旧版 Vetur,Volar 原生支持 vue-html 语言模式自动切换

自定义缩写被忽略?优先级和 JSON 格式是关键

改了 emmet.snippets 却没效果,大概率是配置位置错了,或者语法不合法。VSCode 的 Emmet 配置有明确加载顺序:用户设置 > 工作区设置 > 扩展默认值,且只认标准 JSON。

实操建议:

  • 务必在 settings.json(用户或工作区)里修改,不要在 GUI 设置界面点“添加项”——GUI 不支持嵌套对象如 snippets
  • 检查 JSON 语法:结尾不能多逗号,字符串必须双引号,snippets 是对象不是数组
  • 如果同时用了 emmet.extensionsPath 指向本地 snippets 目录,注意该路径下 html.json 的格式必须严格符合 Emmet v2 规范(键名小写、无注释、无多余字段)
  • 改完重启 VSCode 或重载窗口(Ctrl+Shift+P → 「Developer: Reload Window」),仅保存 settings.json 不触发 Emmet 重载

最常被忽略的一点:Emmet 的语言映射和片段定义是静态加载的,改了配置不重启,等于没改。还有就是 emmet.variables 里的变量名不能含连字符或空格,否则 $var-name 这种写法会静默失败。

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2035

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2942

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

996

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3339

2025.09.10

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

5924

2023.10.24

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

1638

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

2444

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

5924

2023.10.24

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

100

2026.09.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn