Ctrl+J不能直接合并选中的多行,它只响应含换行符的选区且默认加空格拼接;需先清理行尾空格、空行和混合换行符,再精确选中全部换行符,或改用正则替换\r?\n实现自定义分隔符。

Ctrl+J 不能直接合并“选中的多行”,它只响应是否包含换行符的选区,且默认加空格拼接——想一次搞定,必须先清理、再选准、最后替换。
为什么 Ctrl+J 按了没反应或只合了两行
这不是快捷键失效,是 join_lines 命令根本不认“你选了几行”,只认“选区里有没有换行符”:
- 没选中任何文本时,
join_lines只处理光标所在行 + 它的下一行 - 鼠标拖选没拉到末行末尾(光标没跳到下一行开头),换行符没被选中,最后一行就被忽略
- 中文输入法(尤其搜狗、百度)会劫持
Ctrl+J或Cmd+J,切英文输入法再试 - 状态栏右下角没显示类似
3 lines selected,说明选区无效,得重来
怎样让 join_lines 真正一次性合并全部选中行
必须同时满足两个硬条件:选区覆盖所有换行符,且中间无空行干扰。实操建议:
- 别用鼠标粗略拖选;改用
Shift+↓从首行开头逐行向下选,最后一行选完后再按一次↓,确保末行换行符被纳入 - 中间有空行?先打开
Ctrl+H,正则模式开,查找^\s*$\n,替换为空,清掉所有“伪空行” - 行尾有空格或 Tab?按
Ctrl+Shift+P→ 输入Trim Trailing White Space执行,或装TrailingSpaces插件一键清理 - 换行符混用(
\r\n和\n并存)?菜单栏File → Line Endings → Unix (LF)统一为\n
需要自定义分隔符(逗号、竖线、不留空格)怎么办
join_lines 的分隔符写死为空格,改不了。唯一可靠路径是正则替换:
- 先选中目标区域(避免误动全文)
- 按
Ctrl+H(Windows/Linux)或Cmd+H(macOS),点亮.*启用正则模式 - 查找框填
\r?\n(兼容\n和\r\n) - 替换框按需填:
(空格)、,(逗号加空格)、|(竖线)或留空(无缝拼接) - 只想替换选区?按
Alt+R开启「在选区中替换」
真正容易被忽略的是:空行、行尾空格、混合换行符这三者从来不是孤立问题——它们会耦合出奇怪空格、单词粘连、缩进错乱,而 Sublime 从不替你判断或预处理。动手前花 10 秒清理,比反复试 Ctrl+J 更快。











