vs code中按ctrl+shift+→(win/linux)或cmd+shift+→(mac)可选中光标所在最近一对花括号{}内的内容(不含括号),需文件语言模式正确识别;若要连括号一起选中,则用shift+alt+→(win/linux)或shift+option+→(mac)。

用快捷键快速选中一对花括号内的全部内容
VS Code 内置了「扩展选择」功能,Ctrl+Shift+P(Win/Linux)或 Cmd+Shift+P(Mac)调出命令面板后输入 Expand Selection,就能逐步扩大选区——但对花括号这种成对符号,更直接的是用 Ctrl+Shift+Right Arrow(Windows/Linux)或 Cmd+Shift+Right Arrow(Mac):它会自动识别光标所在位置的最近一对 {},并选中其内部所有内容(不含括号本身)。
注意:这个操作依赖语言模式。如果当前文件没正确识别为 javascript、typescript、json 等支持括号匹配的语言,快捷键可能无效或行为异常——此时右下角语言标识可能显示为 Plain Text,点击它手动切换即可。
光标在括号上时,用 Shift+Alt+→ 选中含括号的整个块
如果想连同花括号一起选中(比如要整体删掉或复制一个对象/函数体),把光标停在任意一个 { 或 } 上,然后按 Shift+Alt+→(Win/Linux)或 Shift+Option+→(Mac)。VS Code 会立刻高亮并选中从该括号开始、到其配对括号结束的完整区域(含两个括号)。
- 这个快捷键叫
Expand Region,比普通扩展选择更语义化,专为代码结构设计 - 它不依赖光标是否在行首/行尾,哪怕光标卡在
{和换行符之间也能触发 - 连续按多次可向外层嵌套扩展,比如从内层对象扩到外层函数,再到整个模块
为什么有时按了没反应?常见三类坑
不是快捷键失效,而是 VS Code 没法准确判断“哪一对是你要的”。典型场景包括:
-
{和}不匹配(比如少写一个、多写一个,或被字符串/注释里的花括号干扰) - 文件类型未激活语法支持(如
.txt或无后缀文件,默认不启用括号匹配) - 装了冲突插件(例如某些 Vim 模式插件会重映射
Alt键,或格式化插件劫持了Shift+Alt+→)
验证方法:把光标放在 { 上,看编辑器左下角是否显示「Matching Bracket: {」;不显示就说明括号未被识别为一对。
进阶:用正则或命令行批量处理,但别轻易替代手动选中
如果你真需要“所有 {...} 内容”,比如提取 JSON 对象字段,那属于文本处理范畴,不该靠编辑器选中解决。这时候更适合:
- 用
Ctrl+F→ 启用正则(?s)\{[^{}]*\}(简单嵌套),或更稳的Ctrl+Shift+H配合 AST 工具 - 终端里用
jq或python -m json.tool处理真实 JSON - 写个短脚本用
ast.parse()(Python)或acorn(JS)安全解析——手动能选中的,从来不是最复杂的那部分
真正容易被忽略的是:VS Code 的括号选中能力,本质依赖语法树(AST)构建。一旦代码有语法错误,或者你正在写模板字符串、正则字面量、JSX 中的 { },它的行为就会退化成纯文本匹配——这时候别硬试快捷键,先看有没有红色波浪线。










