Sublime中合并多行为一行默认用Ctrl+J/Cmd+J(仅作用于选区),若需彻底删除换行符须用正则替换\r\n|\r|\n为空;自定义分隔符推荐列选择法;插件如Text Pastry适用于批量编号等进阶操作。

Sublime 中用 join_lines 命令合并选中行
默认快捷键 Ctrl+J(Windows/Linux)或 Cmd+J(macOS)能直接把多行选中文本“拉平”成一行,中间用空格分隔。这个操作本质是执行 join_lines 命令,它只作用于当前选区 —— 没选中就无效,不是全局替换。
常见错误:光标在行尾按 Ctrl+J 没反应,因为没选中任何内容;或者选了整段但中间有空行,join_lines 会把空行也转成空格,结果出现多余空格。
- 想保留原有空格/制表符?先手动删掉行首行尾空白,再选中
- 合并后多了空格?用
Find → Replace批量把+(多个空格)替换成单个空格 - 不想用空格连接?得换方法,
join_lines不支持自定义分隔符
用正则替换彻底去除换行符(含各种换行类型)
如果目标是删掉所有换行、把文本压成纯一行(比如拼接 SQL 或 JSON 字符串),必须用正则替换:Find → Replace → 勾选 ,查找 .*(正则模式)\r\n|\r|\n,替换为空。这个表达式覆盖 Windows(\r\n)、旧 Mac(\r)、Unix/Linux/macOS(\n)三种换行符。
容易踩的坑:只写 \n 会漏掉 Windows 文件里的 \r\n;不勾选正则模式,\n 就是字面量字母 n,根本找不到换行。
- 只想删段落间空行?查
\n\s*\n,替换成\n - 替换后末尾多出空格?关掉
Auto Indent或手动删行尾空白 - 处理大文件卡顿?先保存,再操作;Sublime 对超长单行渲染较慢
用列选择 + 剪贴板手动拼接(适合少量、需控制分隔符的场景)
当你要用逗号、竖线或其它符号连接多行(比如生成 CSV 或 SQL IN 列表),列选择最灵活:按住 Ctrl(Windows/Linux)或 Cmd(macOS),鼠标从第一行末尾拖到最后一行末尾,松开后每行末尾都出现光标,再输入你想要的分隔符(如 , ),最后统一删掉换行符。
这方法绕过了命令和正则的限制,但只适合几十行以内 —— 行数一多,光标定位容易偏移,反而更费时间。
- 列选择失败?确认是否开启了
vim mode,它会拦截Ctrl+鼠标拖拽 - 输完分隔符发现某行不该加?用
Ctrl+Z撤回,再单独选那行删 - 想快速复制所有行内容?
Ctrl+A全选后Ctrl+Shift+P输入Copy as Plain Text(需安装插件)
插件方案:Text Pastry 或 MultiEditUtils 提升批量处理效率
如果频繁做“每行加前缀/后缀”“按序号生成列表”这类操作,原生功能太慢。Text Pastry 支持输入数字范围、重复字符串、随机数等,MultiEditUtils 则强化了多光标对齐和行列转换能力。
装完插件后,常见需求几秒搞定:比如把 100 行文本变成 WHERE id IN (1,2,3,...),用 Text Pastry 的 Insert Numbers 加正则替换就行,不用手敲。
- 插件不生效?检查 Sublime 版本 ——
Text Pastry不支持 Sublime Text 4 的新 API,得换InsertNums - 批量加引号?选中列 →
Ctrl+Shift+P→Wrap Words With→ 输入' - 别依赖插件解决基础问题:删换行、合并行,原生命令+正则已足够,插件只是锦上添花
真正难的不是怎么删换行,而是删完之后要不要保留语义空格、是否要兼容不同平台的换行符、以及大文本下 Sublime 渲染性能突然变卡 —— 这些细节不提前试,到粘贴进终端或代码里报错才回头改,更耗时。










