Ctrl+J(或Cmd+J)可合并光标所在行与下一行,智能处理空格;多光标支持并行合并;正则替换\r?\n更可靠地实现逗号/分号连接或统一空格。

直接按 Ctrl+J 就能合并两行,但光标位置决定行为
你不需要选中任何内容——只要把光标放在某一行(比如第一行末尾或任意位置),按下 Ctrl+J(Windows/Linux)或 Cmd+J(macOS),Sublime 就会自动把**当前行和紧邻的下一行**合并。这是最轻量、最常用的两行合并方式。
注意:它不是简单删换行符。Sublime 会智能处理空格——如果上一行以空格/制表符结尾,下一行以字母或数字开头,它通常不会额外加空格;但如果上一行以标点(如逗号、分号)结尾,也不会强行插入空格,避免破坏语法。
- ✅ 正确场景:合并 JS 变量声明
let a = 1,
→
b = 2;let a = 1, b = 2;
- ❌ 错误预期:以为
Ctrl+J总是加空格 —— 实际它会根据上下文省略冗余空格 - ⚠️ 坑:如果光标在最后一行,
Ctrl+J无反应(因为没有“下一行”可合并)
想用逗号/分号连接?别硬改空格,用正则替换更稳
默认 Ctrl+J 插入空格,但你写的是数组、参数列表或 CSV 片段时,往往需要 , 或 ; 分隔。这时候手动删空格再加标点容易漏、错位,不如直接替换换行符。
- 按
Ctrl+H打开替换面板 - 点击右上角
.*按钮启用正则模式(等价于按Alt+R) - “查找”栏输入:
\r?\n(兼容 Windows/Linux/macOS 换行) - “替换”栏输入:
,(逗号+空格)或;(无空格) - 选中目标区域后点
Replace All
例如原始文本:
apple
banana
cherry
替换 \r?\n → , 后得到:apple, banana, cherry
合并不连续的两行?多光标 + Ctrl+J 一次搞定
有时你要合并的不是上下相邻的两行(比如第3行和第8行),而是逻辑相关的非连续行。这时不能靠默认 Ctrl+J,得用多光标选中后再统一操作。
- 按住
Ctrl(macOS 是Cmd),分别点击两行的行首(或任意位置)——出现两个光标 - 确保两个光标都落在行内(不在行尾空白区,否则
Ctrl+J可能只合并其中一行与它的下一行) - 同时按
Ctrl+J:Sublime 会对每个光标所在行,各自执行“与下一行合并”
⚠️ 注意:这个操作本质是「并行触发两次单行合并」,不是把两行拉到同一行。所以它适合“每行都要跟自己下面那行合并”的批量场景,不适合“把 A 行和 C 行拼成一行”这种跨行搬运。
合并后多了多余空格?先清理再合并更可控
Ctrl+J 的空格插入逻辑虽智能,但遇到缩进混乱、行尾空格残留、或中英文混排时,容易产出 foo bar 这样的双空格。与其事后替换,不如前置清理:
- 选中要合并的多行
- 按
Ctrl+H→ 开启正则 → 查找[ \t]+$(行尾空格/制表符),替换为空 → 点击Replace All - 再按
Ctrl+J
或者一步到位:查找 \r?\n,替换为 (一个空格),比 Ctrl+J 更确定、更少意外。
真正容易被忽略的是:Sublime 的换行符匹配对 \n 和 \r\n 敏感,用 \r?\n 才能覆盖所有来源(从 Windows 复制的文本、Git diff 输出、Python print 结果等)——漏掉 \r?,就可能有行没被替换掉。










