ctrl+shift+f打不开或灰显的根本原因只有两个:未进项目模式或快捷键被劫持;必须用file→open folder…加载项目且where填“.”才搜整个项目,替换后须手动save all。

Ctrl+Shift+F 打不开或面板灰显,根本原因只有两个
不是快捷键失效,就是没进项目模式。左下角状态栏不显示类似 ~/my-project/ 的路径,说明你只是打开了单个文件,Where 框会灰显或仅限 “Open Files”。必须用 File → Open Folder… 重新加载整个文件夹。快捷键被劫持也很常见:打开 Preferences → Key Bindings – User,搜 "ctrl+shift+f"(Windows/Linux)或 "cmd+shift+f"(macOS),删掉冲突项;不确定谁占用了?去 Key Bindings – Default 底部确认原生绑定是否存在:{"keys": ["ctrl+shift+f"], "command": "show_panel", "args": {"panel": "find_in_files"}}。
Where 填什么才真正扫整个项目,填错一个字符就漏掉 90% 文件
Where 不是路径补全框,也不是 shell,它是 Shell 风格的过滤表达式。留空 ≠ 全项目,它等价于“只搜已打开的标签页”,这是最多人踩的坑。填 .(单个英文点)才表示整个项目根目录及其所有子目录;填 ./src/**/*.js 只搜 src/ 下所有 .js 文件(双星号 ** 才递归);排除 node_modules 和 dist 要写成 ., -node_modules/, -dist/(注意统一用正斜杠 /,Windows 上也一样);Linux/macOS 路径区分大小写,./SRC 和 ./src 是两个目录。
正则跨行替换总失败,. 默认不吃换行符
哪怕你点了右下角 .* 图标,foo.*bar 依然只在单行内匹配,遇到 foo\nbar 就失效。全局搜索(Ctrl+Shift+F)底层用的是 Python 的 re 模块,必须显式加 (?s) 开启单行模式:(?s)foo.*bar。不能写成 (?s:foo.*bar),Sublime 不支持内联修饰符分组;更推荐组合写法:(?s)start[sS]*?end,既显式又防错。[sS] 在这里也有效,双重保险。另外,\buser_id\b 对 _ 不敏感,仍会匹配到 username;更稳的是用 (?。
Replace All 后内容丢了?这不是 Bug,是设计
Sublime 不会自动保存被修改的文件——所有改动都在内存里。关掉编辑器或切换标签页前没手动保存,修改就彻底丢失。必须点菜单 File → Save All(或按 Ctrl+Shift+S / Cmd+Shift+S)。高风险操作前务必 git commit 或至少 git stash;大项目建议先关掉 index_files 设置,否则搜索卡死或漏文件;如果某些文件没被替换,检查编码是否为 UTF-8(右下角状态栏看),非 UTF-8 文件默认被跳过;文件过大(>10MB)也会被跳过,可在 Preferences → Settings 加 "index_files": false 并重启。











