Ctrl+J仅合并选区或光标所在行与下一行,不支持全局合并;空行需提前清理,多行转分隔符推荐正则替换\r?\n,含特殊字符时用列编辑更安全,高频操作可绑定自定义快捷键。

Ctrl+J 是最快捷的合并方式,但只对选区生效
Sublime Text 没有“全局一键合并所有行”的命令,join_lines 命令(快捷键 Ctrl+J / Cmd+J)只作用于你当前**手动选中的文本块**。没选中任何内容时,它只会合并光标所在行与下一行——这不是 bug,是设计行为,但容易误以为“失灵”。
- 必须先用鼠标拖选、或
Shift+↓扩展选区,再按Ctrl+J;否则只会动两行 - 合并后每行之间插入一个空格,且会自动 trim 行首尾空白,但**不清理中间多余空格**(比如原行末有缩进或空格,可能变成
foo bar) - 空行也会被压成一个空格,若原始数据含空行,结果会出现异常间隔,建议提前执行
Ctrl+Shift+P → Remove Empty Lines
要用逗号/分号连接?正则替换比改空格更可靠
想把多行转成 a,b,c 或 SELECT * FROM t1; SELECT * FROM t2; 这类格式,别先按 Ctrl+J 再手动替换空格——空格位置不可控,且容易漏掉行首尾残留空白。
- 直接打开替换面板:
Ctrl+H(Windows/Linux)或Cmd+H(macOS) - 点击右上角
.*启用正则模式 - 查找框填:
\r?\n(兼容 Windows/macOS/Linux 所有换行符) - 替换框填:
,(逗号+空格)或;(分号无空格),视需求而定 - ⚠️ 注意:如果最后一行末尾有换行符,替换后会多出一个逗号或分号,可后续执行
Ctrl+Shift+P → Trim Trailing White Space清理
列编辑适合带引号、逗号等特殊字符的字段拼接
当每行是 "apple, inc"、"banana \"ripe\"" 这类含转义、嵌套分隔符的字符串时,全局替换 \n 会破坏结构。这时该放弃正则,改用列编辑手动控制连接点。
良精商城网店购物系统是一套能够适合不同类型商品、超强灵活的多功能在线商店系统,三级分销 PC+移动端+微网站,为您提供了一个完整的在线开店解决方案。良精网店购物系统除了拥有一般网上商店系统所具有的所有功能,还拥有着其它网店系统没有的许多超强功能。多种独创的技术使得系统能满足各行业广大用户的各种各样的需求,是一个经过完善设计并适用于各种服务器环境的高效、全新、快速和优秀的网上购物软件解决方案。
- 按住
Alt(Windows/Linux)或Cmd(macOS),鼠标从第一行末尾垂直拖到最后一行末尾 - 松开后,每行末尾出现独立光标,此时输入
,即可为所有行末添加逗号 - 再全选这些换行符(列选中换行符位置),按
Delete删除——相当于“精准砍掉换行,保留手动加的逗号” - 此法绕过解析逻辑,安全但仅适合几十行以内;行数一多,列选容易偏移,反而更费时间
高频使用建议绑定自定义命令
如果每天都要处理 CSV 列表、SQL IN 子句或日志拼接,重复点开替换面板太慢。可以自定义一个 join_with_comma 命令并绑定快捷键,比如 Ctrl+Alt+J。
- 通过
Tools → Developer → New Plugin…创建插件,或直接编辑Preferences → Key Bindings - 在用户键位文件中添加:
[{"keys": ["ctrl+alt+j"], "command": "replace", "args": {"find": "\\r?\\n", "replace": ", ", "regex": true}} - 注意:正则中的反斜杠要双写(
\\r?\\n),否则不生效 - 插件方案更灵活(如跳过空行、自动去重),但键位绑定已覆盖 90% 场景
真正容易被忽略的是换行符差异和空行干扰——不是 Ctrl+J 不好用,而是它默认假设你处理的是“干净段落”。一旦原始文本来自 Excel 复制、日志导出或 API 响应,先看一眼行尾有没有 ^M(\r),再决定用 \r?\n 还是 \n,省得替半天还多出乱码。









