file_exclude_patterns仅影响侧边栏和ctrl+p,对ctrl+shift+f无效;全局搜索需在where框填., -*.log等规则,且binary_file_patterns可能误判文本文件为二进制导致漏搜。

file_exclude_patterns 是唯一能真正忽略特定文件类型的配置项,它只影响侧边栏显示和 Ctrl+P 搜索,对 Ctrl+Shift+F 全局内容搜索完全无效。
为什么改了 file_exclude_patterns,Ctrl+Shift+F 还在搜 .log 文件?
因为 file_exclude_patterns 和全局搜索是两套机制:
- 它只控制 Sublime 的文件索引和 UI 展示(侧边栏、Ctrl+P)
- Ctrl+Shift+F 是实时遍历磁盘路径,绕过所有索引设置
- 所以即使你写了 "*.log",Ctrl+Shift+F 仍会打开每个 .log 文件尝试读取——除非你用 Where 输入框手动排除
file_exclude_patterns 怎么写才生效?
这个字段只匹配文件名(或路径中任意位置的片段),不关心层级,也不支持正则:
-
"*.log"→ 所有.log文件都不出现在侧边栏和Ctrl+P -
".env"→ 精确匹配名为.env的文件(注意没通配符) -
"README.*"→ 匹配README.md、README.txt,但不匹配README_backup.md - 别写成
"./.env"或"/.env"—— 路径前缀会被忽略,只认 basename - 大小写敏感:Linux/macOS 下
Readme.md≠README.md
Ctrl+Shift+F 想跳过 .log 文件,得用 Where 输入框
这是唯一实时生效的方式,语法简单但容错率低:
- 填
., -*.log→ 排除所有层级的.log文件(注意逗号后必须空格) - 填
src/, -*.log→ 只在src/下搜,且跳过其中所有.log -
-*.log必须跟在路径后面,不能单独写;漏掉.或空格会导致整条规则失效 - 多个排除项用英文逗号分隔:
., -*.log, -*.tmp, -*.swp - 这个输入框改完立刻生效,不用重启,也不用重开项目
容易被忽略的二进制误判问题
即使你已排除 .log,搜索仍可能卡顿或漏结果——原因常是 binary_file_patterns 在偷偷干预:
- Sublime 默认把
.wasm、.bundle、.zip等识别为二进制,直接跳过内容扫描 - 如果你项目里有自定义文本格式(比如
.gql、.schema),又没从binary_file_patterns中移除,它就会被当成二进制忽略 - 检查方法:打开一个疑似被跳过的文件,看右下角状态栏是否显示
Binary;如果是,就得把它从binary_file_patterns列表里删掉 - 这个设置影响所有搜索和
Ctrl+P,改完建议重启 Sublime 或至少重开所有面板
真正起效的排除永远发生在两个地方:一个是项目级的 file_exclude_patterns(管 UI 和索引),另一个是搜索时的 Where 输入框(管本次内容扫描)。混用或写错位置,就等于没排除。











