join_lines命令可合并多行为一行,需先选中再按ctrl+j/cmd+j;默认快捷键易因无选区或输入法冲突失效,推荐配合trailingspaces插件清理行尾空格,或用正则替换实现精准控制。

用 join_lines 命令最直接,但默认快捷键不生效需手动触发
Sublime Text 本身不提供一键“多行合并为一行”的独立命令,但内置的 join_lines 就是干这事的。它会把选中的多行(或光标所在行及后续连续空行前的行)用空格连接成一行,并自动清理首尾多余空格。
常见错误是直接按 Ctrl+J(Windows/Linux)或 Cmd+J(macOS)——这个快捷键默认绑定的是「连接行」,但只在有选区时才合并所选行;没选中任何内容时,它只是把下一行“拉上来”拼到当前行末尾(不删换行符,也不处理多行),容易误以为失效。
- 确保先用鼠标或
Shift+↑/↓选中要合并的多行文本 - 再按
Ctrl+J(Win/Linux)或Cmd+J(macOS) - 如果想保留原始空格分隔(比如合并代码片段时不想多出空格),得先手动删掉每行末尾的空格,否则
join_lines会把它们一起带上
用正则替换实现精准控制:去掉换行但保留逻辑分隔
当需要更精细控制(比如只合并被空行包围的段落、跳过注释行、或用逗号代替空格),正则替换比 join_lines 更可靠。
打开替换面板(Ctrl+H / Cmd+H),勾选 .* 按钮启用正则模式:
- 想把连续非空行合并为一行(空行作为分隔):
查找:\S$\n(?=\S)
替换:
(一个空格)——注意这是匹配「非空白行末 + 换行符 + 下行开头非空白」,适合段落内合并 - 简单粗暴全换成空格:
查找:\n
替换:
(一个空格)——但会把所有换行都换掉,包括段落之间,慎用 - 替换成逗号加空格(如合并列表):
查找:\n
替换:,
安装 TrailingSpaces 插件避免合并后出现意外空格
合并后常发现行尾多出空格,看着像“合并失败”,其实是原行末尾自带空格被一并保留了。Sublime 默认不高亮这些,肉眼难察觉。
TrailingSpaces 插件能实时标出所有行尾空格,配合 join_lines 或正则替换前清理,效果更干净:
- 通过 Package Control 安装
TrailingSpaces - 安装后默认自动启用,行尾多余空格会变红
- 可手动执行
TrailingSpaces: Remove from current view一键清除当前文件所有行尾空格
不装这个,合并完还得逐行检查空格,尤其处理日志、CSV 或配置项时容易埋坑。
Mac 上 Cmd+J 失效?检查是否被输入法或系统快捷键劫持
不少 macOS 用户反馈 Cmd+J 没反应,不是 Sublime 问题,而是系统级冲突:
- 中文输入法(如搜狗、百度)常把
Cmd+J设为「中英文切换」,优先级高于 Sublime - macOS 系统偏好设置 → 键盘 → 快捷键 → 输入源,查看是否有冲突绑定
- 临时解决:切换到英文输入法再试;长期解决:在输入法设置里改掉该快捷键,或在 Sublime 中重新绑定
join_lines到其他组合键(如Cmd+Shift+J)
真正麻烦的是跨平台协作:同一份 Sublime 配置在 Mac 和 Windows 上行为不一致,关键就卡在这种底层快捷键映射上,别只盯着命令本身。











