Sublime Text 多行合并需区分场景:默认用 Ctrl+J(Cmd+J)执行 join_lines 命令安全加空格连接;精确控制则用正则替换 \n,但须限定选区防误操作;Ctrl+Shift+J 非原生快捷键,自定义后仍为 join_lines 行为。

Sublime Text 没有原生的“多行合并”命令,所谓“合并多行”实际是通过删除换行符(\n)或行尾空格来实现的,核心操作依赖 join_lines 命令或正则替换 —— 但默认快捷键不直观,且容易误操作。
用 join_lines 命令合并选中行(最安全)
这是 Sublime 内置、语义明确的合并方式:它把多行选中内容用单个空格连接,并自动处理首尾空白。
- 选中你要合并的连续多行(可用
Ctrl+L多次快速选行) - 按
Ctrl+J(Windows/Linux)或Cmd+J(macOS)执行join_lines - 结果示例:
foo\nbar\nbaz
→foo bar baz - 注意:
join_lines会在每行末尾加一个空格,如果原行末有空格或制表符,可能产生多余空格
用正则替换删 \n(更灵活但需谨慎)
当需要严格控制合并方式(比如不要空格、或替换成逗号),就得手动替换换行符。这时不能直接输入 \n,得用正则模式。
- 打开替换面板:
Ctrl+H(Windows/Linux)或Cmd+H(macOS) - 勾选
.*(正则模式) - 查找框输入:
\n - 替换框填你需要的分隔符,例如:
,、(空格)、或留空(直接拼接) - 点
Replace All或逐个确认 - ⚠️ 风险:如果没限定选区,会全局替换所有换行符,可能破坏代码结构
为什么 Ctrl+Shift+J 不起作用?
网上常提到的 Ctrl+Shift+J 实际是旧版 Sublime(v2)的插件快捷键,或某些第三方插件(如 Text Pastry)自定义的绑定。Sublime Text 3/4 默认不绑定该组合键,也不提供“无空格合并”原生命令。
- 检查是否误装了冲突插件:禁用插件后重试
Ctrl+J - 想自定义快捷键?可在
Preferences → Key Bindings中添加:[{"keys": ["ctrl+shift+j"], "command": "join_lines"}] - 但注意:这样只是改了快捷键,行为仍是加空格的
join_lines,不是“无缝拼接”
合并 JSON/数组等结构化文本时特别小心
直接删 \n 容易导致语法错误,比如把多行 JSON 数组变成一行但漏掉逗号,或破坏缩进逻辑。
- 对 JSON:优先用插件如
JsFormat或JSON Reindent格式化后再操作 - 对 Python 列表:用
Ctrl+Shift+P→ 输入Reindent先统一缩进,再选行Ctrl+J - 临时备份:合并前建议先
Ctrl+Shift+T打开新标签页粘贴原始内容,防误操作不可逆
真正难的不是怎么按快捷键,而是判断哪类场景该用 join_lines、哪类必须上正则、哪类其实根本不该合并 —— 比如带缩进的 Python 代码块,删换行等于毁逻辑。










