Sublime Text没有“批量合并文本列”的原生功能,所谓“列合并”本质是多行拼接,必须靠join_lines或正则替换实现,且默认不识别表格结构、不跳过空行、不处理制表符对齐——直接Ctrl+J很可能把表头和数据挤成一团乱码。

Sublime Text 没有“批量合并文本列”的原生功能,所谓“列合并”本质是多行拼接,必须靠 join_lines 或正则替换实现,且默认不识别表格结构、不跳过空行、不处理制表符对齐——直接 Ctrl+J 很可能把表头和数据挤成一团乱码。
为什么 join_lines 一按就错位或只合两行
它根本不是按“列”或“选中区域形状”工作,而是严格依赖选区是否包含换行符:
- 没选中任何文本时,
Ctrl+J(Windows/Linux)或Cmd+J(macOS)只合并光标所在行 + 下一行,不是你想要的“整列” - 鼠标拖选没拉到末行**之后**(即光标未跳到下一行开头),末行换行符没被纳入,最后一行就被丢掉
- 用中文输入法(如搜狗、百度)时,
Ctrl+J/Cmd+J常被系统拦截,毫无反馈 - 选区里夹着空行或“伪空行”(含空格/
\t的行),join_lines会把它们也当有效行,拼出item1 item2(双空格)
用正则替换安全拼接,避开列对齐陷阱
想把 CSV 或制表符分隔的多行转成单行字段(比如把三列数据拼成 col1,col2,col3),join_lines 完全不合适——它只会加空格,不管原始分隔符。必须用正则控制:
- 先选中目标列区域(别全选,避免误吞表头或空行)
- 按
Ctrl+H(Windows/Linux)或Cmd+H(macOS),点亮.*启用正则模式 - 查找框填:
\r?\n(兼容\n和\r\n,粘贴自 Excel/网页的内容常混用) - 替换框填:
,(逗号)、|(竖线)或留空(无缝拼接) - 若只想替换选区内的换行,按
Alt+R开启「在选区中替换」
合并前必须清理的三项干扰项
所有“拼出来空格乱飞”“单词粘连”“JSON 解析失败”,几乎都来自这三处没清理:
- 行尾空格/
\t:执行Ctrl+Shift+P→ 输入Trim Trailing White Space,或装TrailingSpaces插件一键高亮并清除 - 伪空行:打开替换面板,正则模式下查找
^\s*$\n,替换为空(^$会漏掉含空格的空行) - 混合换行符:点
File → Line Endings → Unix (LF)统一为\n,否则\r?\n可能漏匹配
真正卡住人的从来不是“怎么按快捷键”,而是合并前没意识到:你看到的“列”,在 Sublime 里只是带换行符的普通文本;它不会猜你要保留制表符对齐,也不会自动跳过注释行或表头——所有结构语义,都得你手动界定、预处理、再替换。


















