直接修改file_exclude_patterns就能藏掉.tmp、.log这类临时文件。它只匹配文件名(连带后缀),不会误伤文件夹,也不影响搜索功能。但格式写错了容易翻车——比如填“log”会把blog.md也干掉,而“*.log”才安全。

侧边栏里怎么隐藏 *.tmp、*.log 这类临时文件
直接改 file_exclude_patterns 就行。注意,它只匹配文件名(连带后缀),不会动文件夹,也不会影响搜索内容。最容易踩的坑是格式写错——比如填 "log" 会误杀 blog.md,正确写法是 "*.log"。
file_exclude_patterns必须写在项目配置(.sublime-project)里才能精准生效;要是写进用户设置,那就全局生效了,容易误伤其他项目。这个很多人会忽略。- 常见写法:
"*.tmp"、"*.log"、"*.swp"、".DS_Store";不支持正则,像"^.|.*.tmp"这种会被直接忽略,别试了。 - 改完配置,侧边栏不会自动刷新——你必须右键根目录 → Refresh Folder,或者关掉项目再重开。
- 这些文件依然能被
Ctrl+Shift+F搜到,因为file_exclude_patterns只管显示,不管索引和搜索。这一点务必记住。
Find in Files 搜索时怎么真正跳过 node_modules 和 dist
别打 file_exclude_patterns 的主意了,它对搜索无效。也别指望 folder_exclude_patterns 在用户设置里能起作用——Ctrl+Shift+F 的排除权,只归右下角的 Where 输入框管。
- 打开搜索面板后,在
Where框里填:., -/node_modules/, -/dist/, -*/__pycache__/ - 每一项目前必须以
-开头、以/结尾:-/node_modules/✅,-node_modules❌(会误匹配文件),-/node_modules❌(结尾斜杠不能少,否则语义失效)。 - 逗号后面必须跟空格:
., -/dist/, -/build/✅,.,-/dist/❌(后面的规则全部作废)。 -*/node_modules/表示排除所有层级(比如packages/foo/node_modules),-/node_modules/只排除根目录下的。灵活选用。
为什么改了 folder_exclude_patterns 搜索还是进了 node_modules
这里很多人会混淆两个作用域。 folder_exclude_patterns 控制的是“是否纳入索引”,不是“是否物理扫描”。它只影响 Ctrl+P 和侧边栏,对 Ctrl+Shift+F 的实时遍历没有约束力。
- 如果
folder_exclude_patterns写在.sublime-project里,且结构正确(嵌套在folders数组每个对象内部),它会作用于索引——但大项目索引有延迟,你需要手动 Refresh Folder,或者等几秒。 - 如果
"index_files": false被设为了false(比如某些插件或旧配置),那所有排除逻辑都会失效,Ctrl+Shift+F就退化成纯磁盘遍历,Where框成了唯一防线。 - 检查一下自己有没有拼错:
"node_moudles"或者漏掉引号,都会导致整个数组失效。这种低级错误最容易排查。
binary_file_patterns 会悄悄拖慢搜索速度
就算你已经在 Where 框里排除了 node_modules,搜索依然卡顿或者漏结果?大概率是 binary_file_patterns 在背后跳过了一些本应该被搜索的文本文件。
- Sublime 默认把
.wasm、.bundle、.zip等当作二进制跳过;如果你项目里有.gql、.schema这类自定义文本格式,又没把它们从binary_file_patterns列表里删掉,那它们就真被忽略了。 - 验证方法:打开一个疑似被跳过的文件,看右下角状态栏是否显示 Binary;如果是,就得去设置里把它移出
binary_file_patterns。 - 这个设置全局生效,改完后建议重启 Sublime,避免缓存干扰。
实际项目中,Where 输入框的临时排除最灵活,.sublime-project 配置最稳定,而 binary_file_patterns 是最容易被忽略的性能陷阱——它不报错、不提示,只会默默让搜索变慢或变漏。