Sublime Text 无一键合并多行为一行的内置命令,但可通过正则替换(\n|\r\n→空格)、Join Lines(Ctrl+J)或Split into Lines+Delete实现;需注意换行符差异、光标位置及空格处理。

Sublime Text 本身没有“一键合并多行为一行”的内置命令,但通过组合操作或正则替换可以高效完成——关键不是找按钮,而是理解换行符在文本中的实际表示和编辑器对它的处理逻辑。
用 Find and Replace + 正则替换最稳妥
这是跨平台、兼容所有 Sublime 版本(包括 Sublime Text 4)的通用方案。Windows 和 macOS 的换行符可能不同,所以不能直接搜索 \n 了事。
- 选中要合并的多行文本(或全选
Ctrl+A/Cmd+A) - 打开查找面板:
Ctrl+H(Windows/Linux)或Cmd+H(macOS) - 启用正则模式:
.*按钮点亮(或按Alt+R切换) - 在
Find What输入:\n|\r\n(匹配 Unix 和 Windows 换行) - 在
Replace With输入:(一个空格,也可留空或填其他分隔符) - 点击
Replace All
注意:\r\n 是 Windows 原生换行,\n 是 macOS/Linux 原生换行;用 | 表示“或”,能覆盖大多数粘贴进来的混合换行场景。
用 Join Lines 命令要注意光标位置和行尾空白
Join Lines(快捷键 Ctrl+J)是 Sublime 内置命令,但它不是“合并选区”,而是“把光标所在行与下一行拼接”。行为受当前光标/选区影响极大。
- 如果只有一行光标(无选区),它会把当前行和下一行合并,删除当前行末尾的换行符,但保留原行末尾空格或制表符
- 如果选中了多行(比如从第1行开头拖到第5行末尾),
Ctrl+J只会合并第1–2行,然后光标跳到新合并行末尾,需重复按多次 - 它不会自动清理行首/行尾多余空格,合并后可能出现
foo bar这种多个空格连在一起的情况 - 若某行末尾有注释(如 Python 的
# comment),Join Lines会把下一行内容直接接在注释后面,造成语法错误
用 Selection → Split into Lines 配合 Ctrl+Shift+L 实现“反向合并”
这不是直接合并,而是一种高阶控制:先让每行独立成一个光标,再统一删换行符。适合需要精细干预(比如只合并偶数行、跳过空行)的场景。
- 选中目标文本块
- 执行
Selection → Split into Lines(或快捷键Ctrl+Shift+L),此时每行开头都有一个光标 - 按
End键(或Cmd+→)让所有光标移到行尾 - 按
Delete(不是Backspace)——这会删除每个光标后的换行符(即下一行开头) - 若需加空格分隔,可在按
Delete前先输入一个空格
这个方法本质是“批量删除行尾换行符”,比正则更直观,但要求你清楚自己删的是什么位置;误按 Backspace 会删掉行尾字符,不可逆。
Example before: apple banana cherryAfter \n|\r\n → space replace: apple banana cherry
真正容易被忽略的点是:Sublime 对剪贴板换行符的保留逻辑不一致——从终端复制的文本常带 \r\n,从浏览器复制的可能只有 \n,而你自己回车输入的又取决于系统设置。所以别依赖单一正则,\n|\r\n 是底线写法;另外,合并后是否要补空格、去首尾空格、过滤空行,这些都得在替换前想清楚,Sublime 不会替你做语义判断。










