Sublime批量替换多行文本需启用(?s)或勾选↩,否则.无法跨行;用^(\s)function (\w+)\(\) \{捕获缩进,替换为$1const $2 = () => {;换行符统一用\R;操作前必点Find All预览,避免误改注释或字符串。

Sublime批量替换多行文本必须启用 (?s) 或勾选 ↩
默认正则中 . 不匹配换行符,写 function.*{ 永远搜不到跨行的函数体。不处理这点,所有“多行替换”都只能命中单行片段。必须显式启用 dotall 模式:(?s) 放在正则开头,或点击查找面板右下角的 ↩ 图标(变蓝后生效)。注意:↩ 和 .* 是两个独立开关,缺一不可——只开 .* 仍无法跨行。
用 ^(\s*)function (\w+)\(\) \{ 捕获缩进再替换,别丢格式
直接把 function foo() { 替成 const foo = () => {,新内容会顶到行首,破坏原有缩进。关键不是改文本,而是保留上下文结构:
- 查找框填:
^(\s*)function (\w+)\(\) \{(^和括号捕获开头空白) - 替换框填:
$1const $2 = () => {($1复原原始缩进) - 务必勾选
Regular Expression和↩,否则^不按行生效
\R 比 \n 或 \r\n 更可靠
Windows 文件用 \r\n,macOS/Linux 用 \n,混用时 \n 会漏掉 \r 导致替换断层。Sublime 内置的 \R 自动适配所有平台,且不能放进字符类(如 [\R] 会报错):
- 合并多行为一行:查找
\R,替换为(空格) - 删空行:查找
^\s*$\R,替换为空(先关掉↩,否则^/$失效) - 结尾补换行:查找
\R$,替换为\R(确保文件以单个换行结尾)
预览比执行更重要,Find All 必须点
点 Replace All 前跳过 Find All,90% 的误操作就发生在这里。尤其处理多行结构时,高亮区域可能包含注释、字符串或 JSX 模板——这些地方的 console.log 或 function 绝对不该动:
- 先输正则,点
Find All,看底部面板列出的每一处匹配位置和上下文 - 如果某处是
// function foo()或"function bar() {}",立刻调整正则加边界,比如改成^\s*function\b - 大项目建议分目录操作,Where 框填
src,-node_modules,避免扫进构建产物
Replace All 前,得确认自己已经看过每一处高亮。

















