ctrl+shift+f(mac为cmd+shift+f)失效主因是未正确加载项目,需通过file→open folder…打开根目录,并确保where输入框路径正确(如.或src/),同时检查binary_file_patterns是否误判文本文件为二进制。

Ctrl+Shift+F 灰显或点击无反应,先看项目是否真正加载
Sublime 的全局搜索(Find in Files)根本不能脱离项目上下文运行。快捷键灰显、点不动、弹出面板但结果为空——90% 是因为没进项目模式。
检查左下角状态栏:必须显示类似 ~/my-project/ 的路径;侧边栏必须有完整树形结构。仅靠打开一堆文件标签页、用 Add Folder to Project… 拼凑路径,都不算数。
- 关掉所有标签页,执行
File → Open Folder…,选最外层根目录(比如src上一级) - Mac 用户注意:
Cmd+Shift+F常被系统 Spotlight 占用,需在「系统设置 → 键盘 → 快捷键 → Spotlight」里禁用 - 插件可能劫持快捷键,临时禁用插件,或检查
Preferences → Key Bindings – User中是否有冲突绑定
Where 输入框填错一个字符,就等于搜了别的地方
Where 不是 shell,也不是正则,默认是路径前缀匹配器。它不解析通配符,也不做 glob 展开,只做字面前缀比对。填错,就等于把搜索范围锁死在错误路径下。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空 - 只搜
src/下所有文件(含子目录):填src/,自动递归,不用写src/**/* - 排除
node_modules和dist:写成., -node_modules/, -dist/(逗号分隔,斜杠统一用/) - 搜已打开但未保存的标签页:唯一方式是手动填
open_files—— 官方文档几乎不提,但它真有效
搜得到文件却找不到内容,大概率是 binary_file_patterns 在静默跳过
你搜 .gql 或 .schema 文件里的文本,结果为空?不是正则写错,也不是路径不对,而是 Sublime 根本没读这些文件——它在磁盘读取前就根据 binary_file_patterns 判定为二进制,直接丢弃。
这个设置控制“是否尝试读取”,优先级高于 Where 过滤和 file_exclude_patterns。哪怕你在 Where 里写了 ., -*.zip,它仍会尝试打开每个 .zip,然后发现是二进制,立刻放弃。
- 确认误判:直接打开那个文件,右下角状态栏显示
Binary→ 就是它 - 修改位置:打开
Preferences → Settings – User,添加或修改"binary_file_patterns"数组 - 想让
.gql可被搜到:确保它不在数组里;想彻底跳过.min.js:加进去,如"*.min.js" - 改完需重启 Sublime 或至少重开所有面板,否则右下角仍可能显示
Binary
清缓存、关索引、再试一次
如果以上都对,还是搜不到内容,极可能是 Cache 或 Index 目录损坏。它们分别存插件临时产物和 SQLite 搜索数据库,损坏后会导致 Find in Files 静默失败——不报错、不提示、返回空。
- 必须杀光所有 Sublime 进程:Windows 查
sublime_text.exe和subl.exe;macOS 用活动监视器强制退出全部实例(包括 helper);Linux 执行pkill -f "sublime_text" - 删两个目录:
Cache(插件缓存)和Index(SQLite 数据库),路径因系统而异,但都位于用户配置目录下 - 删完重启前,在用户设置中加一行:
"index_files": false,避免后台重建索引阻塞首次搜索 - 首次启动稳定后,如需索引,再手动执行
Project → Index Files
binary_file_patterns 发生在“读取之前”这个不可绕过的时机。











