Ctrl+Shift+Enter在当前行上方插入纯空行,光标落于原行相同缩进列;而Enter或Home+Enter会带入缩进或内容,破坏格式。

Ctrl+Shift+Enter 在当前行上方插空行,缩进自动对齐
它不是“换行”,而是插入纯空行,光标落在与原行相同缩进列,不带任何字符。手动按 Enter 或先 Home 再 Enter 都会把缩进或前面内容带到新行,导致格式错乱。
- 光标停在
for (let i = 0; i 中间任意位置,按 <code>Ctrl+Shift+Enter→ 上方立刻出现空行,且光标对齐到第 0 列缩进(比如 2 个 Tab) - 若当前行是注释
// TODO: handle error,新行仍保持顶格,不会继承注释前的空格 - 缩进行为由
auto_indent设置控制;关闭后仍对齐原行缩进,但后续输入不会自动补缩进
Ctrl+Enter 在当前行下方加空行,完全无视光标位置
哪怕光标卡在 console.log("hello" 的引号里,Ctrl+Enter 也只在整行下方插空行,绝不拆开当前行、不吞字符、不移动已有内容。
- 和
Enter键本质不同:Enter是编辑操作(断行),Ctrl+Enter是布局操作(插行) - 不继承上一行缩进——新行默认顶格;如需缩进,得额外按
Tab,或开启detect_indentation+auto_indent - 多行批量处理必须用整行选区:先
Ctrl+L选中第一行,再Ctrl+Shift+↓扩展,最后统一按Ctrl+Enter
快捷键没反应?优先排查三类静默拦截
功能本身几乎从不失效,但系统/驱动/插件常悄悄吞掉组合键。
- macOS 上
Cmd+Shift+↑(即Ctrl+Shift+Enter的 macOS 映射)默认被 Mission Control 占用,需进「系统设置 → 键盘 → 快捷键 → 调度中心」关掉「向上箭头切换桌面」 - Windows 下 NVIDIA 控制面板、搜狗/微软拼音输入法常劫持
Ctrl+Shift+↑/↓,切英文输入法再试 - 装了 Vintage 或 Vim 模式插件时,
Ctrl+Shift+Enter可能被重映射,可在命令面板(Ctrl+Shift+P)搜insert line before手动执行验证
真正容易被忽略的上下文陷阱
Sublime 的插行逻辑不感知语法结构:它不检查你是否在 if 块中间、是否跨折叠区域、是否处于字符串或注释内。它只管“当前行”,然后机械地插空行。
比如在折叠的函数体中间插行,不会自动展开;在 return { a: 1, 后插空行,也不会帮你对齐后续字段。这些都得你肉眼确认——快捷键越快,越要盯住上下文是否还连贯。


















