sublime text全局搜索需先加载项目目录、正确填写where路径(如“.”)、启用正则匹配并手动保存;否则ctrl+shift+f无响应、替换不生效或漏文件。

Sublime Text 的全局搜索替换不是输完就点 Replace All 的事——它默认不跨文件、不递归子目录、不自动保存,Ctrl+Shift+F 按了没反应?大概率卡在项目没加载或 Where 填错了。
Ctrl+Shift+F 按了没反应?先确认项目模式和快捷键
Sublime 只在真正加载了项目根目录时才激活全局搜索。状态栏没显示类似 ~/my-project/ 的路径,或者侧边栏只是几个标签页、没有树形目录,说明你还在单文件模式。
- 关掉所有标签页 →
File → Open Folder…→ 选中项目最外层目录(比如my-app/,不是my-app/src/) - 等右下角
Indexing…消失后再操作;Mac 用户注意:Cmd+Shift+F常被系统 Spotlight 占用,需在「系统设置 → 键盘 → 快捷键」里禁用 - 检查
Preferences → Key Bindings – User,搜"ctrl+shift+f"或"cmd+shift+f",删掉插件冲突项;原生绑定应为:{"keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"}}
Where 字段填什么才真正搜整个项目?别信“留空”或“./”
Where 是路径前缀匹配器,不是 shell 路径也不是正则表达式。填错一个字符,90% 的文件就漏掉了。
- 搜整个项目:必须填单个英文点
.(不是./,不是./src,也不是留空) - 只搜
src/下所有 JS 文件(含子目录):填src/**/*.js(双星号**才递归) - 排除
node_modules和dist:写成., -node_modules/, -dist/(逗号分隔,减号开头,统一用正斜杠/) - Windows 上也必须用
/;路径区分大小写:./SRC≠./src
正则替换总出错?盯住 .* 开关、$1 和 (?s)
Sublime 的正则开关是面板级独立的:查找框和替换框的 .* 图标都得点蓝,灰色 = 字面量匹配,$1 就是原样输出。
- 启用正则:点右下角
.*图标(变蓝),或按Alt+R;console\.log$$[^)]+$$才能匹配console.log(id)(括号、点号必须转义) - 捕获组引用只能用
$1,不是\1;getUser$$([^)]+)$$→ 替换为getUser({ $1 }) -
.默认不匹配换行符;要跨行必须加(?s)前缀,例如(?s)"content": "(.*?)" - 防误替:想改
id但不碰user_id,勾选Whole Word(Alt+Enter),或正则写成\bid\b
Replace All 后文件没变?这不是 Bug,是设计上就不保存
所有替换结果都在内存里,没触发修改标记,也不自动保存。关掉未保存的标签页,改动直接丢弃——Sublime 没有跨文件撤销历史。
- 替换前务必执行:
git add -A && git commit -m "before global replace" - 替换后立刻按
Ctrl+K松开,再按Ctrl+B(Windows/Linux)或Cmd+K → Cmd+B(macOS)手动保存全部 - 别依赖右上角星号 *;替换后用
git diff快速核对,再跑一遍测试验证功能是否受影响











