sublime替换框中需用快捷键(win/linux:ctrl+shift+enter;macos:control+command+enter)插入真实换行符,不可输入\n;^匹配行首加换行会导致首行空行,应用$匹配行尾;替换不支持r,仅查找可用;操作前须关闭“. matches newline”并确认line_ending设置。

不能直接用 \n 在替换框里“加换行符”——它只在启用正则模式且上下文允许时才被识别为真实换行,否则就是字面的两个字符 \ 和 n。
替换框里怎么正确插入换行符
Sublime 的替换框不解析 \n 字面量;必须用快捷键触发真实换行。Windows/Linux 是 Ctrl+Shift+Enter,macOS 是 Control+Command+Enter。输错成 \n 会导致文件里多出反斜杠和字母 n,尤其在 JSON 或代码字符串中极易引发语法错误。
- 别在替换框手动敲
\n,哪怕你刚在查找框里用了\n - 如果快捷键失效,检查是否被系统或输入法拦截(macOS 上常见 Command 键冲突)
- 想加多个换行?连按两次快捷键,不是输
\n\n
为什么 ^ + \n 会把内容顶到新行开头
用 ^ 查找再替换为 \n(或快捷键换行),本质是“在每行开头插入一个换行”,结果第一行前多出空行,其余行前面也各多一行——这不是 bug,是 ^ 匹配位置 + 换行符叠加的必然效果。
- 要给每行「后面」加换行,查
$,替换成换行符(快捷键) - 要给每行「前面」加换行但避免首行空行,先选中从第二行开始的所有行,再操作
- 若目标是“段落间空一行”,应匹配行尾
$后加两个换行,再用\n{2}清理重复
跨平台批量加换行时 R 和 \n 别混用
R 是 Sublime 内置的通用换行符,只用于查找,不能用于替换框;而 \n 在查找中只匹配 LF,在 Windows 文件里漏掉 \r。但替换时你根本没法输 R——它不支持写进替换栏。
- 查找阶段可用
R提高兼容性(如删空行搜^\s*$R) - 替换阶段只能靠快捷键插入真实换行,此时最终写入的换行符类型由当前文件的
line_ending设置决定(右下角显示的 LF/CRLF) - 想确保输出全是 LF?先执行
Convert Line Endings to LF命令,再保存
加换行后缩进错乱的真正原因
不是正则写错了,是没关「. matches newline」(即 ↩ 图标)。一旦勾选,^ 和 $ 会失效,.*? 可能跨行吞掉整段结构,导致加完换行后缩进全崩。
- 所有涉及
^、$、^(\s*)的操作,务必确认 ↩ 图标未激活 - 需要跨行匹配时,改用
[\s\S]*?,比.*?可靠 - 加换行后发现代码贴到左缘,八成是这一步漏了检查
最易忽略的一点:加换行本身不改变文件编码或换行格式设置,右下角显示什么,最终保存的就是什么。批量操作前,先确认当前文件的 line_ending 是你想要的,否则加完全是 LF 的文件,一保存可能又被转成 CRLF。











