Ctrl+Shift+F面板灰显或打不开,根本原因是未进入项目模式:必须通过File→Open Folder…加载根目录,使左下角显示路径(如~/my-project/),Where填“.”才搜整个项目;填空仅搜已打开标签页,快捷键冲突需检查Key Bindings–User并确认原生绑定。

Ctrl+Shift+F 面板灰显或打不开?只因没进项目模式
不是快捷键坏了,也不是 Sublime 崩了——根本原因是当前没处于「项目模式」。状态栏左下角不显示类似 ~/my-project/ 的路径,就说明你只是打开了单个文件,Where 框必然灰显或仅限 Open Files。
必须用 File → Open Folder… 加载整个文件夹,且 Where 框里填 .(一个英文点),才真正覆盖整个项目根目录及所有子目录。填空 ≠ 全搜,它等价于“只搜已打开的标签页”,这是最常踩的坑。
- 快捷键被劫持?打开
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 表达式怎么写才不漏文件
Where 不是路径补全框,也不是 shell,它是 Shell 风格的过滤表达式。填错一个字符,90% 的文件就搜不到。
- 搜全部:填
.(单个英文点) - 只搜 src 下的 JS:
./src/**/*.js(注意双星号**才递归) - 排除
node_modules和dist:., -node_modules/, -dist/(统一用正斜杠/,Windows 上也一样) - Linux/macOS 区分大小写:
./SRC和./src是两个目录
正则跨行匹配总失败?缺 (?s) 修饰符
哪怕点了右下角 .* 图标,foo.*bar 依然只在单行内匹配。遇到 foo\nbar 就失效——因为底层用的是 Python 的 re 模块,默认不跨行。
必须显式加 (?s) 开启单行模式:(?s)foo.*bar。不能写成 (?s:foo.*bar),Sublime 不支持内联修饰符分组。
- 更稳写法:
(?s)start[sS]*?end,[sS]双重保险 -
\buser_id\b对下划线不敏感,仍会匹配到username;更准的是用(?<![a-zA-Z0-9_])user_id(?![a-zA-Z0-9_])
Replace All 后内容丢了?这不是 Bug,是设计
Sublime 不会自动保存被修改的文件——所有改动都在内存里。关掉编辑器或切换标签页前没手动保存,修改就彻底丢失。
- 必须执行
File → Save All(或按Ctrl+Shift+S/Cmd+Shift+S) - 高风险操作前务必
git commit或至少git stash - 大项目建议先关掉
index_files设置(Preferences → Settings加"index_files": false并重启),否则搜索卡死或漏文件 - 非 UTF-8 编码文件默认被跳过(看右下角状态栏),文件过大(>10MB)也会被跳过
真正容易被忽略的是:跨模块搜索依赖的是当前项目的实时文件树快照,不是磁盘状态,也不是 Git 状态——改了但没保存的文件,不会出现在搜索结果里。


















