跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Sublime怎么查找并替换换行符_Sublime如何搜索多行文本内容【攻略】

Sublime中匹配换行符需显式用\n或\r\n,或用[\s\S]*绕过.不跨行限制;跨行搜索须正确设置Where路径并启用正则;替换后需手动保存。 怎么在 Sublime 里真正匹配换行符 Sublime 的正则引擎(PCRE)默认不把
.
当作能匹配换行符的通配符,也不支持
/s
修饰符——所以写
start.*end
永远跨不了行,这是最常卡住人的地方。 必须显式写出换行:用
\n
表示 LF(Unix/macOS),
\r\n
表示 Windows 换行;实际文件中是什么,就得写什么 想匹配“从 start 到 end 之间任意内容(含换行)”,得写成
start[\s\S]*?end
或
start(.*\n)*?.*end
——
[\s\S]
是绕过
.
不跨行的通用解法 别用
^
/
$
做跨行锚定:它们只对单行生效;多行场景下,
^
匹配的是每行开头,不是整个文本开头 如果文件是 UTF-16 或带 BOM,正则可能意外失效;建议先用
File → Reopen with Encoding → UTF-8
统一编码 全局替换多行内容时,“Where”路径和正则要同步设对 用
Ctrl+Shift+F
(macOS 是
Cmd+Shift+F
)打开全局搜索后,光写正则没用,范围设错照样找不到——尤其当目标跨行内容分散在不同子目录或文件类型中时。 在
Where
框中填
src/**/*.py
才能递归搜 Python 文件;只写
src/
会忽略子文件夹 若只想处理 Markdown 中的代码块,
Where
填
*.md
,查找框启用正则后输入
```[a-z]*\n([\s\S]*?)\n```
,再用
$1
提取内容 勾选
Use Regular Expressions
(Alt+R)必须和
Where
路径同时生效;漏点一个,面板就退化成纯文本搜索 大项目慎用空
Where
:它会扫所有已索引文件(包括
node_modules
),极易卡死;先限定
app/**
或
*.js,*.ts
替换后为什么改了却没保存? Sublime 的“Replace All”只修改内存中的文件副本,不会自动触发保存——这是用户误以为“替换失败”的头号原因,尤其在批量处理十几个文件时。 仿Sublime和notepad++编辑器效果 仿Sublime和notepad++编辑器效果 下载 替换完成后,标签页右上角出现
*
星号,代表该文件已修改但未保存 必须手动执行
File → Save All
,或按快捷键
Ctrl+K
后接
Ctrl+B
(Windows/Linux);macOS 是
Cmd+K
→
Cmd+B
如果某文件被外部程序(如 Git、IDE)锁定,Sublime 无法保存,也不会报错,只会静默跳过——检查文件权限或关掉其他编辑器再试 建议替换前先用
Find All
预览结果,确认无误再点
Replace All
;否则回退只能靠
Ctrl+Z
(仅限当前文件)或 Git 恢复 复杂跨行正则导致界面冻结怎么办 像
(a+)+
、
.*?foo.*?bar
这类嵌套量词或贪婪回溯模式,在大文件(>5MB)或匹配项密集时,会让 Sublime 卡顿数秒甚至无响应。 优先用更具体的字符类代替
.*?
:比如匹配 HTML 标签间文本,用

([^<]+)

比

(.*?)

快得多 超大日志文件先预筛:用
Ctrl+Shift+F
先搜关键词(如
ERROR
)定位相关文件,再对这些文件单独开正则替换 避免在未启用
Whole Word
时搜短词:比如搜
id
可能匹配到
video
、
hidden
,引发大量无效回溯 真需要强正则能力又常处理大文本?考虑导出匹配块到 VS Code 或专用工具(如 ripgrep + sed),Sublime 不是万能的 事情说清了就结束。关键不是“能不能”,而是“在哪设”“怎么写”“改完存没存”——三处漏一点,整个流程就断在半路。

相关文章