ctrl+j(windows/linux)或cmd+j(macos)可直接合并当前行与下一行,自动压缩中间空白为单个空格;需确保光标不在空行且开启正则模式才能用\n替换换行符。

用 Ctrl+J 合并当前行与下一行(Windows/Linux)或 Cmd+J(macOS)
这是 Sublime Text 内置的最直接方式,无需插件、不改配置,按一次就合并光标所在行和它正下方那行,中间空格自动压缩为单个空格。
常见错误现象:Ctrl+J 没反应?大概率是光标不在行尾——它只作用于「当前行 + 下一行」这个组合,且默认会删掉换行符+两端空白,再塞一个空格进去。如果下一行为空,结果就是当前行末尾多一个空格。
- 确保光标在要保留内容的那行(比如第一行),而不是空行上
- 想连续合并多行?选中从第一行到目标末行的整块文本,再按
Ctrl+J,它会逐对合并(即 1&2 → 合并为1行,新1行 & 3 → 再合并) - 不想要自动加空格?后面会提到手动替换方案
用查找替换去掉换行符:\n → 空字符串或空格
当 Ctrl+J 不够灵活(比如想删换行但不加空格,或跨多行批量处理),就得进正则模式。注意:Sublime 的查找框默认不识别转义字符,必须打开 正则模式(.* 按钮) 才能输 \n。
- 想严格拼接(无空格):查找
\n,替换为空(留空)→ 适合 JSON 字段值折行、SQL 拼接等场景 - 想保留可读性:查找
\n,替换为(一个空格)→ 注意空格要手动敲,别用\s,否则可能把原有缩进也替成空格 - 只合并特定模式的换行?比如「分号后换行」:查找
;\n,替换为;→ 能安全收拢多行语句
用列编辑(多光标)+ 剪切粘贴手动控制合并逻辑
当两行结构不对称(比如左侧行尾有逗号,右侧开头有缩进或关键字),自动合并容易出错。这时列编辑比正则更可控。
- 按住
Ctrl(Windows/Linux)或Cmd(macOS),鼠标点击每行要保留的起始位置,生成多个光标 - 按
End移到各行行尾,再按Shift+↑选中换行符(看不见但存在),按Delete或Cut - 如果右边那行开头有多余空格/制表符,可提前用
Ctrl+Shift+P→Indentation: Convert Indent to Spaces统一后再操作
为什么不用插件?这些原生操作已覆盖 95% 合并需求
第三方插件如 Join Lines 或 AdvancedRename 看似功能多,但实际引入额外快捷键冲突、更新兼容风险,且多数只是封装了 Ctrl+J 或正则替换。真正卡住的往往不是功能缺失,而是没意识到 Ctrl+J 对光标位置敏感,或忘了开正则开关就输 \n。
复杂点在于:合并后语法是否仍合法——比如 Python 中把 def foo():\n pass 合成一行会破坏缩进逻辑;JS 中 return\n{} 合成 return{} 会隐式插入分号导致返回 undefined。这种时候,别急着合并,先看语义。











