VSCode怎么设置按下回车键时自动补全HTML标签的闭合部分

夜晨君_1893

夜晨君_1893

2026-03-30

697人浏览

原创

vscode中回车不自动闭合html标签是因为emmet默认仅响应tab触发展开,需在keybindings.json中为html上下文绑定enter至emmet.expandabbreviation命令,并确保emmet.triggerexpansionontab为true、语言模式正确且无插件冲突。

vscode怎么设置按下回车键时自动补全html标签的闭合部分

VSCode里回车不自动闭合HTML标签,是没开emmet

默认情况下,VSCode的HTML文件不会在按Enter时自动补全闭合标签(比如输入<div>后回车,期望变成<code><div></div>),根本原因是emmet的wrapWithAbbreviation行为未被触发,且默认的editor.acceptSuggestionOnEnter和emmet.triggerExpansionOnTab配置不联动回车键。

必须开启emmet的expandAbbreviation并绑定到Enter

VSCode本身不把Enter当作emmet展开热键,需手动改键位绑定。关键不是改设置面板里的开关,而是加一条keybindings.json规则:

[
  {
    "key": "enter",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus && editorLangId == 'html' && !suggestWidgetVisible && !inSnippetMode",
    "args": {
      "snippet": "$1$0"
    }
  }
]

但更稳妥、符合HTML习惯的做法是启用emmet原生展开逻辑:

  • 打开settings.json,确保有"emmet.triggerExpansionOnTab": true(这是基础)
  • 添加"emmet.showExpandedAbbreviation": "always",让缩写提示始终可见
  • 最关键:在keybindings.json中覆盖默认回车行为——只对HTML上下文生效,避免影响其他语言
  • 不要用editor.action.triggerSuggest或acceptSelectedSuggestion,它们只处理智能提示,不触发emmet展开

为什么tab能闭合而Enter不能?

因为emmet默认只响应Tab触发缩写展开(如div→<div></div>),而Enter被VSCode保留给换行。即使开了editor.acceptSuggestionOnEnter,它也只是选中当前建议,不会调用emmet的解析器。

VSCode
VSCode

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

下载
  • Tab走的是emmet.expandAbbreviation命令链,支持嵌套、属性、自闭合等完整逻辑
  • Enter默认走editor.action.insertLineAfter,和emmet完全无关
  • 强行用insertSnippet模拟会丢失emmet的上下文感知(比如无法识别ul>li*3这种多层缩写)
  • 真实项目中,混合使用Tab展开 + Enter换行更稳定,不必强求回车闭合

容易踩的坑:插件冲突与语言模式错配

即使配置正确,也可能失效。常见原因:

  • 当前文件没被识别为html语言模式(右下角显示Plain Text或PHP),按Ctrl+K M手动设成HTML
  • 装了Auto Close Tag这类插件,它和emmet抢Enter行为,优先禁用它
  • emmet.includeLanguages里漏写了"html": "html"(如果用了自定义语言关联)
  • 工作区设置了"emmet.triggerExpansionOnTab": false,覆盖了用户全局设置

真正起作用的永远是emmet.expandAbbreviation这条命令是否在HTML编辑器里被Tab或你自定义的键触发——回车只是个可选项,不是必选项。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

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

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

2023.08.07

2135

5

json是什么
json是什么

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

2023.08.23

3242

1

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

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

2023.10.13

1096

3

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

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

2025.09.10

3719

7

vscode是什么_vscode怎么安装配置
vscode是什么_vscode怎么安装配置

VS Code(Visual Studio Code)是一款免费、开源的跨平台代码编辑器,由微软开发和维护。它被广泛用于软件开发和编程,支持多种编程语言和框架。VS Code 同时提供了丰富的功能和扩展性,使开发者可以高效地编写、编辑和调试代码。

2023.06.30

1395

18

vscode怎么运行代码
vscode怎么运行代码

vscode是一个运行于MacOS X、Windows和Linux之上的,针对于编写现代Web和云应用的跨平台源代码编辑器;vscode免费而且功能强大,对JavaScript和NodeJS的支持非常好,自带很多功能,例如代码格式化,代码智能提示补全、Emmet插件等。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.21

2932

3

vscode使用的框架介绍
vscode使用的框架介绍

VSCode是一款跨平台代码编辑器,它基于Electron框架和Monaco Editor构建。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1989

12

vscode一般用来写什么语言
vscode一般用来写什么语言

VSCode是一款功能强大的代码编辑器,支持多种编程语言和文件格式。它内置对 JavaScript、Python、Java、C++、TypeScript、HTML/CSS、Go 等语言的支持。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.14

1727

8

vscode可以写什么语言
vscode可以写什么语言

vscode是一款强大的代码编辑器,支持多种编程语言的开发。通过安装扩展,可以为 JavaScript/TypeScript、Python、Java、C#、PHP、Go、Ruby、Rust、HTML/CSS 等语言提供智能代码补全、调试和格式化等功能。想了解更多vscode的相关内容,可以阅读本专题下面的文章。

2024.03.15

2607

12

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程