select between brackets 命令仅在光标精确位于 {、}、[、]、(、) 字符上时生效,依赖字符位置匹配而非语法解析,不支持反向选中,且对 jsx 表达式边界花括号有效但忽略字符串内字面括号。

光标必须落在括号字符上才能触发 Select Between Brackets
VSCode 的 Select Between Brackets 命令(可通过 Ctrl+Shift+P 调出并输入执行)只在光标精确停在 {、}、[、] 或 (、) 上时才生效——不是括号中间的空格,也不是换行符前/后,更不是字符串里的字面括号。它靠的是字符位置匹配,而非语法解析。
- 常见错误:光标在
{后面一个空格处,按命令无反应;移到{上再试,立刻选中内部全部内容(不含括号) - 该命令对 JSX 中的
{}也有效,但仅限表达式边界上的花括号,模板字符串里写的"{a: 1}"不会被识别 - 不依赖语言模式,但若文件是
Plain Text,括号配对引擎仍工作;只是嵌套过深(>10 层)或存在未闭合括号时会静默失败
Shift+Alt+→ 和 Ctrl+Shift+↑ 行为完全不同
很多人混淆这两个快捷键,它们底层调用的命令不同,适用场景也不同:Shift+Alt+→(Windows/Linux)调用的是 editor.action.expandRegion,而 Ctrl+Shift+↑ 触发的是 editor.action.smartSelect.expand。
微软正式发布 Visual Studio Code 1.118 版本 。本次更新重点强化了 AI 开发体验与企业管理能力,其中最引人注目的是新增 Copilot CLI 远程控制功能,允许开发者通过手机或网页远程监控和接管 AI 会话 。同时,为了提高 AI 的运行性价比,新版本优化了令牌缓存策略以降低成本 。此外,1.118 版还引入了 Chronicle 本地历史追踪、TypeScript 7.0 支持以及更严格的企业级访问管控 。
-
Shift+Alt+→是“结构扩选”:光标在任意括号字符上,按一次就选中这对括号及其全部内容(含括号);再按一次向外扩一层(如从对象扩到函数体) -
Ctrl+Shift+↑是“语义扩选”:光标在变量名中间,第一次按选中整个标识符,第二次才可能扩到包裹它的括号块——但它依赖语言扩展提供的 AST,JSX、Vue<script setup></script>或未格式化的代码中容易卡住 - 如果快捷键没反应,先确认右下角语言模式是否为
JavaScript、TypeScript或JSON;纯文本下Ctrl+Shift+↑会退化为词级选择
删除括号内容前,先确认你选的是“里面”还是“连括号一起”
直接按 Delete 或 Backspace 前,得清楚当前选区是否包含括号本身。否则可能删掉一半结构,留下语法错误。
- 用
Select Between Brackets→ 选中的是内部内容(不含括号),删完只剩孤零零的{}或[] - 用
Shift+Alt+→→ 选中的是完整块(含括号),删完直接移除整个结构,比如删掉一个对象字面量或数组字面量 - 误操作补救:删多了?按
Ctrl+Z;删少了?别反复拖鼠标,重新把光标放回括号上再执行一次命令
自定义快捷键时,优先绑定 editor.action.selectBetweenBrackets
VSCode 默认没给 Select Between Brackets 分配快捷键,但它是目前最稳定、最少歧义的括号内容选中方式。手动绑定能避免记混多套组合键。
- 打开
keybindings.json(Ctrl+Shift+P→ 输入Preferences: Open Keyboard Shortcuts (JSON)) - 添加条目:
{"key": "ctrl+shift+b", "command": "editor.action.selectBetweenBrackets"} - 注意:不要覆盖已有高频快捷键(如
Ctrl+Shift+P),也别用Ctrl+W——那是系统级关闭窗口键,插件 ExpandRegion 占用它会导致冲突 - 该命令不支持“反向选中”(即选中括号外内容),如需类似功能,得配合多光标或正则查找替换










