应使用正则表达式\r?\n匹配并替换换行符为空格,需开启正则、关闭“. matches newline”,并优先统一文件换行符为lf;替换后建议清除行尾空格。

直接用 \n 替换为空格就行,但必须开正则、关 “. matches newline”,否则会出错或漏替换。
替换前先确认换行符类型
右下角看当前是 CRLF(Windows)、LF(Unix/macOS)还是 CR。不同系统换行符不同,\n 只能匹配 LF;如果文件是 CRLF,只写 \n 会漏掉 \r,导致替换不干净。
- 最稳妥做法:先统一换行符。菜单 View → Line Endings → Unix (LF) 强制转成
LF,再操作 - 不想改原格式?查替换时用
\r?\n——它兼容LF和CRLF - 别依赖
\s:它在 Sublime 里默认含换行符,\s+会跨行误吞内容
正确打开正则并执行替换
按 Ctrl+H(Win/Linux)或 Cmd+H(macOS)打开替换面板,关键三步:
- 勾选右下角
.*图标(启用正则) -
务必关闭 “. matches newline”(点它让它变灰)——否则
$失效,\n可能被当普通字符处理,甚至引发跨行错乱 - Find What 填:
\r?\n,Replace With 填:(一个空格)
为什么不用 Ctrl+Shift+Enter 直接输换行符?
有人试过在查找框按 Ctrl+Shift+Enter 插入换行符,看似直观,但实际有隐患:
- 该快捷键插入的是当前视图的换行符,但 Sublime 不保证它和文件真实换行符一致(比如粘贴进来的文本可能混用
\r\n和\n) - 替换框里若手动敲
\n却没开正则,Sublime 会把它当字面量两个字符\和n,根本不会识别为换行 -
\r?\n是显式、可读、跨平台兼容的写法,比“盲插”更可控
真正容易被忽略的是:替换后空格会堆在行尾,可能造成后续格式问题(比如 Markdown 段落合并、JSON 字符串意外缩进)。建议替换完顺手跑一次 [ \t]+$ 清掉行尾空格,再保存。











