Sublime全局搜索需先打开文件夹项目,否则Replace All不可用;正则开关需分别启用;Where路径必须谨慎设置以避免误改;删空行应使用^[ \t]*$而非^\s*$。

Sublime全局搜索必须先加载项目目录
没打开文件夹直接 Ctrl+Shift+F,Replace All 按钮是灰色的,点也白点。Sublime 的全局搜索不是“搜整个磁盘”,它只在当前已加载的项目目录下工作。你得先 File → Open Folder 进入一个根目录(比如 src 或整个工程),否则所有 Where 路径设置都无效。
常见错误:在单个文件里按 Ctrl+Shift+F,输完正则、填好 Where,点了 Replace All 却没反应——不是权限问题,是根本没项目上下文。
正则开关要手动点两次:查找和替换面板各自独立
Ctrl+Shift+F 打开全局搜索后,右下角的 .* 图标必须是蓝色;但如果你接着点 Replace 输入框准备写 $1,那个 .* 图标又变灰了——这是正常行为。查找和替换的正则模式是两个开关,必须分别点开。
- 不点查找面板的
.*,console\.log\(.*?\)就只当字面字符串匹配,找不到任何console.log() - 不点替换面板的
.*,$1会被原样输出,不会替换成捕获内容 - 快捷键
Alt+R(Win/Linux)或Cmd+Alt+R(macOS)可快速切换,但每次进新面板都要确认一次
Where 路径写错等于裸奔,* 是最危险的通配符
Where 字段不是“可填可不填”,它是防止误改第三方代码的最后一道闸门。填 * 表示“搜所有打开的文件”,包括 node_modules、dist、甚至你顺手拖进去的 README.md。
安全写法示例:
-
src/**/*.js:只匹配src下所有层级的.js文件 -
!node_modules, !dist, *.ts:排除黑名单 + 显式限定后缀 -
components/**.vue, utils/*.js:多路径用英文逗号分隔
执行前务必点 Find All 看预览列表——如果第一行就显示 node_modules/axios/index.js,立刻停手。
删空行、去尾空格这些“小操作”最容易踩 \s 的坑
\s 在 Sublime 中会匹配换行符 \n 和回车符 \r,这不是 bug,是 Boost.Regex 引擎的行为。所以:
- 别用
^\s*$删空行,它可能把只有\r的假空行也干掉,破坏文件末尾结构 - 改用
^[ \t]*$:显式只认空格和 Tab,避开跨行风险 - 删行尾空格:用
[ \t]+$,不是\s+$;后者可能吞掉最后一行的换行符,保存后少一行 - 想保留换行结构?替换框留空就行,别加
\n或\r,Sublime 自动保持行边界
真正麻烦的从来不是正则怎么写,而是你有没有三秒时间看一眼 .* 图标颜色、扫一遍 Where 路径、点一下 Find All 预览——这三步跳过,后面 Git revert 的时间够重写两遍逻辑。











