Sublime Text 选中内容后直接输入 { 即可智能包裹,无需插件或快捷键;该功能原生支持多行、不依赖光标位置和语法模式,但需注意自动格式化插件可能导致缩进错乱。

直接输入 { 就能包裹,不需要插件、不用查菜单、不依赖光标位置。
选中后敲 { 是最稳的原生操作
Sublime Text 内置了智能配对包裹逻辑:只要文本处于选中状态,输入任意左括号或引号,它会自动用该符号及其配对符号把选中内容包起来。
- 选中
console.log('done'),输入{→ 立刻变成{console.log('done')} - 选中多行代码(比如函数体),输入
{→ 同样生效,自动换行并补全右括号 - 它不关心光标在哪——只要文本被选中,输入动作就触发包裹,比快捷键更可靠
- 若当前语言模式是 Plain Text,该功能仍可用,因为它走的是纯文本替换路径,不依赖语法解析
为什么不用 expand_selection 或自定义快捷键?
这类命令(如 expand_selection 的 brackets 模式)是为“从光标出发往外扩”设计的,目标是选中已有括号内的内容;而你要的是“给已有内容加括号”,方向完全相反。
-
expand_selection无法保证加的是{}—— 它可能匹配到最近的()或[],尤其在嵌套深时行为难控 - 自定义快捷键(如
ctrl+alt+b)默认作用于光标所在位置,不是选区,容易误触发 - 手动输
{是唯一明确表达“我要把这堆东西包进花括号”的操作,无歧义、无上下文依赖
遇到换行或缩进错乱?先关掉自动格式化
包裹后如果括号位置歪斜、缩进崩坏,大概率是插件在背后偷偷调用了 reindent 或 JsFormat。
- 检查是否启用了 ESLint-Formatter、JsBeautify 等自动格式化插件
- 临时禁用它们,或在项目根目录加
.jsbeautifyrc,设"brace_style": "collapse"避免强制换行 - 包裹前先确认右下角语言模式正确(如 JavaScript 而非 Plain Text),否则缩进引擎可能拒绝响应
reindent - 如果只是临时包裹调试用,不追求美观,直接输
{后按Ctrl+Z撤销格式化即可保留原始结构
真正卡住人的从来不是“怎么加括号”,而是加完发现缩进塌了、括号错位了、或者被插件自动拆成三行——这些都不是包裹操作本身的问题,而是后续自动干预在捣鬼。

















