ctrl+j需选中完整多行且无干扰字符:确保显式选中含换行符的多行、关闭中文输入法、避免多光标;sql等场景须用正则替换;合并前须清理行尾空格、统一换行符。

Ctrl+J 没反应?先确认是不是真选中了多行
Sublime 的 join_lines 命令(快捷键 Ctrl+J / Cmd+J)只对「显式选中的完整多行」生效,不是光标在哪儿就合并哪儿。常见假象是:Shift+↓拖到最后一行末尾,但没让光标跳到下一行开头——这意味着末行的换行符没被选中,Ctrl+J 就只会拼当前行和下一行,而不是全部。
真正稳的操作是:
- 鼠标从第一行行首拖到最后一行行尾后一个位置(看到光标落到空行或下文开头)
- 或用
Ctrl+L多次选中整行,确保状态栏显示类似5 lines selected - 关掉中文输入法——搜狗、百度输入法常劫持
Cmd+J,切英文再试 - 别用
Ctrl+Shift+L生成多光标,那不是选区,join_lines完全无视
SQL IN 列表要加引号+逗号?别硬套 Ctrl+J
Ctrl+J 的分隔符写死为空格,根本没法处理 WHERE id IN ('a', 'b', 'c') 这种需求。强行用它只会得到 'a' 'b' 'c',语法直接报错。
正则替换才是唯一解:
- 先选中所有待合并的值(比如每行一个字符串
a、b、c) - 按
Ctrl+H打开替换面板,点.*启用正则模式 - 查找:
^(.+)$,替换:'$1'(给每行加单引号) - 再查:
\r?\n,替换:,(换行变逗号加空格) - 最后手动补上
IN (和)——注意末尾会多一个逗号,得删掉
合并后单词粘连 or 多余空格?八成是行尾空白没清理
你看到的 ifcondition 或 foo bar(两个空格),不是 Ctrl+J bug,而是原行末尾自带空格或 Tab 被原样保留。Sublime 默认不显示这些字符,肉眼根本看不见。
一款AI工具,主要用于Monitor and clean up invalid Codex authentication files in CPA. Check quota status, disable files returning 401 errors, and perform dual verification before deletion.,适合需要提升相关任务效率的用户。
必须前置清理:
- 装
TrailingSpaces插件(Package Control 安装即可),行尾空格自动标红 - 或手动执行
Ctrl+Shift+P→ 输入Trim Trailing White Space,但它只清当前行;批量清理得用插件命令TrailingSpaces: Remove from current view - 更狠的预处理:查找
[ \t]+$(行尾空格或 Tab),替换为空,再跑合并
从 Excel / 微信粘贴进来的文本总出错?换行符混了
粘贴日志、Excel 表格或微信消息时,文本里可能同时存在 \r\n(Windows)、\n(macOS/Linux)、甚至孤立 \r(老 Mac)。只搜 \n 会漏掉 \r\n,导致部分换行没被替换。
安全写法永远是:
- 正则查找用
\r?\n(覆盖\n和\r\n) - 极端情况加
\r(?!\n)补漏(匹配单独的\r) - 或者统一换行符:菜单
File → Line Endings → Unix (LF),把全文转成\n再操作
真正卡住人的从来不是快捷键记不住,而是合并前没意识到:空行、行尾空格、混合换行符这三者会互相放大问题——比如一个空行 + 两处行尾空格 + \r\n,Ctrl+J 就会产出不可预测的空格堆叠,SQL 直接语法错误。










