搜不到.log或.gql文件,先检查binary_file_patterns是否将其误判为二进制;若右下角显示binary,需在preferences → settings – user中删除对应项(如"*.gql"),设为空数组[]并重启搜索面板。

Find in Files 搜不到 .log 或 .gql 文件?先看 binary_file_patterns
Sublime 默认把某些后缀识别为二进制文件,直接跳过内容扫描——哪怕你没在 file_exclude_patterns 里写它,Ctrl+Shift+F 也不会查。打开一个疑似被跳过的文件(比如 api.gql),右下角状态栏显示 Binary 就是铁证。
解决方法:打开 Preferences → Settings – User,找到 binary_file_patterns 数组,删掉误加的项,例如 "*.gql"、"*.schema"、"*.wasm";空数组 [] 表示不跳过任何文件,但含大图片或压缩包时搜索会变慢。
- 改完必须关闭并重开搜索面板(
Esc→ 再按Ctrl+Shift+F),否则缓存可能让效果延迟 - Linux/macOS 下大小写敏感:
"*.LOG"和"*.log"是两个独立项 - 这个设置影响所有搜索和
Ctrl+P,不是项目级的,改错容易全局误伤
想真正跳过 *.log 这类文件?file_exclude_patterns 必须写进 .sublime-project
folder_exclude_patterns 只管文件夹,对文件类型完全无效;而 file_exclude_patterns 才是唯一能排除文件格式的配置,但它只在项目配置中生效——写在用户设置(Preferences → Settings – User)里对 Ctrl+Shift+F 无效。
正确做法:菜单 Project → Edit Project,确保 JSON 结构包含 folders 数组,并把 file_exclude_patterns 放在每个 folders 对象内部:
{
"folders": [
{
"path": ".",
"file_exclude_patterns": ["*.log", "package-lock.json", "tsconfig.json"]
}
]
}
- 值是纯字符串数组,不支持路径前缀:
"logs/*.log"会被忽略 - 通配符
*有效,但不支持正则:"**/*.log"❌,"*.log"✅ - 改完必须手动执行
Refresh Folder(Ctrl+Shift+P→ 输入并回车),重启编辑器不够
Where 输入框也能临时排除文件类型,但语法很窄
打开 Ctrl+Shift+F 后,右下角 Where 输入框支持用短横线临时过滤,比如 -*.log、-package-lock.json,但它不走 file_exclude_patterns 逻辑,而是前缀匹配路径名。
常见错误写法:-log(匹配所有含 log 的路径)、-*.min.js(部分版本不支持 * 在中间)——实际最稳的是 -*.log 和 -*.lock。
- 必须以
.开头表示项目根目录:., -*.log✅;单独写-*.log❌ - 多个规则用英文逗号分隔,且逗号后必须跟一个空格:
., -*.log, -*.lock✅ - 它只影响本次搜索,关掉面板就失效,适合快速验证,不适合长期维护
为什么删了 file_exclude_patterns 还搜不到?检查是否被 folder_exclude_patterns 间接拦截
如果某个文件(比如 src/utils/debug.log)既没被 binary_file_patterns 拦,也没在 file_exclude_patterns 里,却仍搜不到,大概率是它所在的父文件夹被 folder_exclude_patterns 整个跳过了。
例如项目配置里写了 "folder_exclude_patterns": ["debug"],那 debug.log 根本不会被递归进入,file_exclude_patterns 压根没机会起作用。
- 这种拦截是静默的:不报错、不提示,结果就是“搜不到”
- 排查顺序固定:先确认
binary_file_patterns→ 再查file_exclude_patterns→ 最后翻folder_exclude_patterns - 注意层级:如果
"path": "src",那"debug"排除的是src/debug/,不是项目根下的debug/











