VSCode 默认支持扩展选择:Shift+Alt+→(Windows/Linux)或 Shift+Option+→(macOS)可逐层选中括号内内容,需光标在括号内部;若失效,可用 Ctrl+Shift+P 执行“Select Bracket Contents”命令,更稳定可靠。

选中括号内内容用 Shift+Alt+→(Windows/Linux)或 Shift+Option+→(macOS)
VSCode 默认就支持「扩展选择」,按一次 Shift+Alt+→ 会从光标位置向外扩展选中最近的一对括号({}、[]、())包裹的全部内容,包括括号本身。再按一次,会把外层括号也包进去——比如函数体套在花括号里,而函数定义又套在另一个花括号里,它就逐层往外扩。
常见错误现象:Ctrl+D 或 Ctrl+Shift+L 被误用,它们是多光标操作,不处理结构化选中;还有人试 Ctrl+Shift+→,那是按词右选,和括号无关。
- 必须把光标放在括号内部(哪怕只是括号中间一个空格),不能在外侧或紧贴括号边缘
- 如果光标刚好在
{或}上,可能只选中符号本身,移进去一点再试 - 该快捷键对字符串里的括号无效(比如
"{name: value}"中的{}不会被识别为代码结构)
括号不匹配或嵌套太深时,Ctrl+Shift+P 搜 “Select Bracket Contents” 更稳
默认快捷键依赖语法解析器,遇到 JSX、模板字符串、不闭合的注释或自定义 DSL(如 Vue 的 <script setup>)可能失效。这时 VSCode 内置命令 Select Bracket Contents 更可靠——它基于编辑器的 bracket pair colorization 引擎,不依赖语言服务。
使用场景:写 Vue/React 组件、调试 ESLint 报错时定位嵌套对象、清理冗余 JSON 片段。
- 按下
Ctrl+Shift+P(macOS 是Cmd+Shift+P),输入Select Bracket Contents,回车执行 - 它会自动识别光标附近的最内层成对括号,并选中其内容(不含括号)
- 比快捷键少一层“是否包含括号”的歧义,适合精准剪切/重命名内部逻辑
想改快捷键或让 Ctrl+Shift+↑ 也能选中?直接改 keybindings.json
VSCode 允许覆盖默认行为,比如有人习惯用 Ctrl+Shift+↑ 选中当前块(类似 Sublime),只需手动绑定到 editor.action.smartSelect.expand 命令即可。
参数差异:这个命令和 Shift+Alt+→ 背后是同一个动作,但触发方式不同;改键位不影响功能逻辑,只影响肌肉记忆适配。
- 打开命令面板
Ctrl+Shift+P→ 输入Preferences: Open Keyboard Shortcuts (JSON) - 添加一条规则:
[{"key": "ctrl+shift+up", "command": "editor.action.smartSelect.expand", "when": "editorTextFocus && !editorReadonly"}] - 保存后立即生效,无需重启;冲突提示会出现在快捷键旁,点“重置”可还原
插件不是必须的,但 Bracket Pair Colorizer 关了会影响高亮感知
VSCode 1.84+ 已内置括号配对高亮(editor.guides.bracketPairs),但如果你关了它,或者用了旧版本,Shift+Alt+→ 可能“猜错”括号层级——尤其在缩进混乱、无换行的单行对象里。
性能影响极小,兼容性上:所有现代版本都支持,但某些远程开发容器若禁用了语法服务器,可能退化为纯文本匹配。
- 检查是否开启:
Settings搜bracket pairs,确保Editor > Guides > Bracket Pairs打钩 - 不用装老版
Bracket Pair Colorizer插件,它已被官方功能取代,共存反而可能导致颜色错乱 - 真正容易被忽略的是:当文件类型未被正确识别(比如 .js 文件里写了 HTML 模板),括号语义解析会降级,此时优先确认右下角语言模式是否正确


















