VSCode括号自动补全默认开启,若失效需检查editor.autoClosingBrackets是否设为never、被插件覆盖或语言模式错误;该设置仅接受always/languageDefined/never三值,false为非法值;应通过JSON设置确认唯一有效配置,并按语言ID(如[javascript])单独设置;HTML标签闭合依赖语言模式和Emmet;括号补全与智能提示(quickSuggestions)机制无关。

VSCode 的括号自动补全默认就开着,输入 {、(、[ 会立刻补上右半边;如果没反应,不是功能坏了,而是被关了、被插件覆盖了,或语言模式不对。
检查 editor.autoClosingBrackets 设置是否被设为 never
这个开关控制所有基础括号( 常见误配: 正确做法:打开命令面板( 有些语言(比如 Markdown、HTML 模板、JSONC)默认不补全引号或括号,这是有意设计,不是 bug。你不能靠全局开关“一招鲜”,得用语言特定配置。 例如,想让 JavaScript 文件里输入 错误示例: HTML 标签自动闭合依赖两个条件:当前文件被识别为 典型失效场景: 验证方式:打开一个真实 很多人把 关键区别: 最常被忽略的一点:即使括号补全开着,如果你在字符串里输入 {}、()、[])、引号(''、"")、标签(always、languageDefined、never。
settings.json 里手动写成 "editor.autoClosingBrackets": false —— 这是非法值,VSCode 会静默忽略,退回到默认行为(通常是 languageDefined),但结果不可控never,尤其在按 i 进入插入模式前已生效never,而你只查了 GUI 界面没看 JSON 视图Ctrl+Shift+P),运行 Preferences: Open Settings (JSON),搜索 autoClosingBrackets,确认它只出现一次且值为 "always" 或 "languageDefined"。按语言 ID 单独配置括号补全行为
' 也自动补全 '',但又不想影响 JSON 文件:
settings.json 中添加语言块:"[javascript]": {"editor.autoClosingBrackets": "always"}
"[json]": {"editor.autoClosingBrackets": "languageDefined"}(JSON 默认不补引号)javascript,TS 是 typescript,Vue 单文件是 vue,不是 vue-html 或 html
"javascript"(缺方括号)或 "js"(ID 不存在)都不会生效。为什么输入
不自动补
>?检查语言模式和扩展html 语言模式,且安装了支持该行为的语言扩展(如内置 HTML 支持或 Emmet)。
Plain Text —— 此时任何语言级补全都无效,先保存为 .html 或手动点击右下角切换语言模式emmet.triggerExpansionOnTab 和 emmet.showExpandedAbbreviation
.html 文件,输入 div 后按 Tab,看是否展开为 ;如果不行,Emmet 就没正常工作。括号补全和智能提示是两套机制,别混着调
editor.autoClosingBrackets 和 editor.quickSuggestions 当成一回事,结果改来改去都不对路。
editor.autoClosingBrackets 是编辑器底层行为,纯文本操作,不依赖语言服务器,输完左括号就立刻补右括号editor.quickSuggestions 控制的是 IntelliSense 弹窗(函数名、变量、参数提示),它需要语言服务器启动、类型信息可用、项目有 jsconfig.json 或 tsconfig.json
console.log( 后不会自动加 );关掉后者,console. 后不会弹出方法列表 —— 它们互不影响"{,默认也不会补 "}",因为 editor.autoClosingBrackets 在字符串上下文中被限制了——这是防误触的设计,不是故障。











