Sublime怎么快速合并多行文本 Sublime去除换行符操作【技巧】

10次阅读

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

Sublime怎么快速合并多行文本 Sublime去除换行符操作【技巧】

Sublime 中用 join_lines 命令合并选中行

默认快捷键 Ctrl+Jwindows/linux)或 Cmd+JmacOS)能直接把多行选中文本“拉平”成一行,中间用空格分隔。这个操作本质是执行 join_lines 命令,它只作用于当前选区 —— 没选中就无效,不是全局替换。

常见错误:光标在行尾按 Ctrl+J 没反应,因为没选中任何内容;或者选了整段但中间有空行,join_lines 会把空行也转成空格,结果出现多余空格。

  • 想保留原有空格/制表符?先手动删掉行首行尾空白,再选中
  • 合并后多了空格?用 Find → Replace 批量把 +(多个空格)替换成单个空格
  • 不想用空格连接?得换方法,join_lines 不支持自定义分隔符

用正则替换彻底去除换行符(含各种换行类型)

如果目标是删掉所有换行、把文本压成纯一行(比如拼接 sqljsON 字符串),必须用正则替换:Find → Replace → 勾选 .*(正则模式),查找 rn|r|n,替换为空。这个表达式覆盖 windowsrn)、旧 macr)、unix/Linux/macosn)三种换行符。

容易踩的坑:只写 n 会漏掉 Windows 文件里的 rn;不勾选正则模式,n 就是字面量字母 n,根本找不到换行。

  • 只想删段落间空行?查 ns*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 PastryMultiEditUtils 提升批量处理效率

如果频繁做“每行加前缀/后缀”“按序号生成列表”这类操作,原生功能太慢。Text Pastry 支持输入数字范围、重复字符串、随机数等,MultiEditUtils 则强化了多光标对齐和行列转换能力。

装完插件后,常见需求几秒搞定:比如把 100 行文本变成 WHERE id IN (1,2,3,...),用 Text PastryInsert Numbers 加正则替换就行,不用手敲。

  • 插件不生效?检查 Sublime 版本 —— Text Pastry 不支持 sublime text 4 的新 API,得换 InsertNums
  • 批量加引号?选中列 → Ctrl+Shift+PWrap words With → 输入 '
  • 别依赖插件解决基础问题:删换行、合并行,原生命令+正则已足够,插件只是锦上添花

真正难的不是怎么删换行,而是删完之后要不要保留语义空格、是否要兼容不同平台的换行符、以及大文本下 Sublime 渲染性能突然变卡 —— 这些细节不提前试,到粘贴进终端或代码里报错才回头改,更耗时。

text=ZqhQzanResources