Sublime中搜索
无反应是因为未启用正则模式,需点击.图标激活;推荐用R跨平台匹配换行,删空行应搜^s$R,多行替换须捕获缩进并预览。
为什么直接搜
没反应
不是
写错了,是正则模式根本没开。Sublime 默认把
当普通字符处理,哪怕你写了
也搜不到任何换行——因为
按钮没点,引擎压根不解析转义序列。
必须先按
(Windows/Linux)或
(macOS),再手动点击右下角的
图标(变蓝才算生效)。否则所有
、
、
、
全部失效。
确认方式:输入
点“查找”,能高亮数字就说明正则已激活
常见误操作:以为按了
就自动进正则,结果搜
时连一个换行都不匹配
Windows 文件用
,但直接写
容易漏掉单个
;更稳写法是用
(Sublime 内置通用换行符)
和
到底该用哪个
是 Sublime 特有的跨平台换行符匹配,等价于
,不用管文件是 Windows、macOS 还是 Linux 换行格式。而
只匹配 LF,在 Windows 文件里会漏掉
中的
,导致替换不完整。
例如想把所有换行替换成空格合并成一行:
✅ 推荐:
→
(一个空格)
❌ 风险:
→
,在 Windows 文件中只处理了 LF,
会残留成乱码
⚠️ 注意:
不支持放在字符类里,比如
是非法语法
怎么删空行又不破坏末尾换行
直接搜
并替换为空,看似干净,实则常把文件末尾的换行符也干掉,导致 Git 提示 “no newline at end of file”。更糟的是,如果开了
,
和
会失效,整条规则崩盘。
仿Sublime和notepad++编辑器效果
仿Sublime和notepad++编辑器效果
下载
✅ 正确做法:关闭
(即不勾选 ↩ 图标),搜
,替换为空
✅ 补一刀清理末尾多余换行:搜
,替换为空(确保文件以单个换行结尾)
❌ 错误示范:
+ 勾选 ↩ → 匹配失控,可能吞掉代码行首的空格甚至整段逻辑
跨行内容替换时缩进错乱怎么办
比如要把
替成
,直接用
替换,新文本会丢失原始缩进,所有代码被顶到行首。
关键不是正则写得不够狠,而是没把缩进本身捕获进来:
✅ 捕获缩进:
(注意
前的
和括号)
✅ 替换保留:
⚠️ 注意:
和
默认只匹配全文首尾,必须加
或勾选 ↩ 才能按行生效;但这里用
是为了捕获每行开头的空白,所以勾选 ↩ 是必要的
? 复杂结构别硬刚:含嵌套
或换行注释时,
比
更可靠,且必须加
防贪婪越界
最常被忽略的一点:替换前不点
预览,就敢按
。尤其涉及
或多行捕获时,一个没注意的
缺失,可能让整个文件的换行和缩进全乱套,而且很难靠 Ctrl+Z 撤回——因为 Sublime 在大文件中会分块执行替换,撤销栈可能只记录部分操作。
{2,}.*Ctrl+HCmd+H.*
^$d+Ctrl+H
RR
R
|
|
R
R[R]^s*$. matches newline^$. matches newline^s*$RR$^s*$function foo() {
console.log(1);
}const foo = () => {
console.log(1);
};function (w+)() {^(\s*)function (\w+)\(\) \{\s*^$1const $2 = () => {^$(?m)^{}[sS]*?.*??Find AllReplace AllR?