Ctrl+Shift+M(Mac用Cmd+Shift+M)仅在光标位于匹配括号内或括号字符上且语法模式正确时生效,可逐层选中嵌套括号结构,但不支持HTML标签或未配对括号;选中内容默认含括号,需二次操作或插件获取纯内容。

Sublime 里 Ctrl+Shift+M 选不中括号内容?先检查光标位置
这个快捷键只在光标落在括号内(包括括号本身)时才生效,不是“悬停就触发”。常见错误是光标停在括号外、字符串里、注释中,或刚好卡在括号字符上但 Sublime 没识别为配对结构。
- 把光标移到左括号
(、[或{上,再按Ctrl+Shift+M—— 它会选中整个配对块(含括号) - 光标在右括号上也行,效果一样
- 如果括号不匹配(比如少一个
}),Ctrl+Shift+M会失效,此时可手动用Ctrl+Shift+↑(Expand Selection)逐层扩大选区 - 注意:HTML 标签不算“括号结构”,
Ctrl+Shift+M对<div>无效
想只选括号里的内容(不含括号)?得靠插件或自定义命令
原生 Ctrl+Shift+M 总是包含括号,没开关。要纯内容,有两个轻量方案:
- 装插件
BracketHighlighter,启用后右键菜单有Select Content选项(快捷键需手动绑定,比如设成Ctrl+Alt+Shift+M) - 更省事:用
Ctrl+Shift+M先选中带括号的整块,再按Ctrl+Shift+→(Expand Selection to Scope)两次,通常就能跳过外层括号,停在内部文本上 - 别依赖“双击括号”——Sublime 默认不支持,点了也没反应
不同括号类型(圆/方/花)和嵌套层级,Ctrl+Shift+M 都能处理吗?
能,但有前提:Sublime 必须正确识别当前语法高亮模式。比如写 Python 时 [1, [2, 3]] 嵌套,Ctrl+Shift+M 在最内层 [2, 3] 的左括号上按一次,只选它;再按一次,会往外扩到整个 [1, [2, 3]]。
- 嵌套越深,多按几次
Ctrl+Shift+M就能逐层往外选 - 混用括号(如
func([a, b]))没问题,它按就近配对原则工作 - 但若文件没设置语法(底部显示
Plain Text),括号配对逻辑会失效,务必点底部语言名,选成Python、JavaScript等对应模式 - 正则表达式中的括号(如
/(\d+)/)可能被误判,这时建议临时切到RegExp语法模式
Mac 用户按 Ctrl+Shift+M 没反应?别硬按,换键位
Mac 默认把 Ctrl 映射成系统级控制键,常被拦截。实际应该用 Cmd+Shift+M —— 这才是 macOS 版 Sublime 的标准快捷键。
- 确认方法:打开
Preferences → Key Bindings,搜expand_selection,看右边 JSON 里keys字段写的是什么 - 如果发现是
["ctrl+shift+m"],而你用 Mac,直接改成["super+shift+m"](super= Cmd) - 别改错成
command或cmd,Sublime 只认super - 改完保存,不用重启,立即生效

















