Ctrl+J(或Cmd+J)可合并光标所在行与下一行,智能处理空格;多光标支持并行合并;正则替换\r?\n更可靠地实现逗号/分号连接或统一空格。
Ctrl+J 就能合并两行,但光标位置决定行为你不需要选中任何内容——只要把光标放在某一行(比如第一行末尾或任意位置),按下 Ctrl+J(Windows/Linux)或 Cmd+J(macOS),Sublime 就会自动把**当前行和紧邻的下一行**合并。这是最轻量、最常用的两行合并方式。
注意:它不是简单删换行符。Sublime 会智能处理空格——如果上一行以空格/制表符结尾,下一行以字母或数字开头,它通常不会额外加空格;但如果上一行以标点(如逗号、分号)结尾,也不会强行插入空格,避免破坏语法。
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?,就可能有行没被替换掉。