sublime text搜索跳过node_modules需在项目设置(.sublime-project)中配置folder_exclude_patterns,如["node_modules","dist",".git"],路径为相对folders.path;临时排除可在find in files的where框输入.src,-node_modules。

Sublime Text 搜索时怎么跳过 node_modules 这类文件夹
默认情况下,Sublime Text 的 Find in Files(Ctrl+Shift+F / Cmd+Shift+F)会递归扫描整个项目目录,包括 node_modules、dist、.git 等明显不需要搜索的路径。这不是性能问题,而是结果污染——你搜 fetchUser,结果里混着 200 个第三方库里的同名函数,根本没法定位。
解决方式是配置 file_exclude_patterns 和 folder_exclude_patterns,但注意:这两个设置只对「侧边栏显示」起作用;真正影响「搜索范围」的是 binary_file_patterns 和更关键的 folder_exclude_patterns —— 且必须写在项目设置(.sublime-project)里才对「Find in Files」生效。
-
folder_exclude_patterns是核心,填相对路径(如"node_modules"、"dist"、".next"),支持通配符*,但不支持** - 别往用户首选项(
Preferences → Settings)里塞这些,全局设置对搜索无效 - 如果项目用了多根目录(multi-root workspace),每个根目录需单独配
.sublime-project
如何快速生成并编辑 .sublime-project 文件
手动建 JSON 容易出错,推荐用 Sublime 自带菜单生成基础结构:打开项目根目录 → Project → Save Project As… → 保存为 xxx.sublime-project。然后右键该文件 → Open With → Sublime Text,补上 folders 和 settings 块:
{
"folders": [
{
"path": "."
}
],
"settings": {
"folder_exclude_patterns": ["node_modules", "dist", ".git", ".cache"],
"file_exclude_patterns": ["*.log", "*.tmp"]
}
}
注意:folder_exclude_patterns 里的路径是相对于 folders.path 的,不是相对于项目文件本身。如果 path 是 "./src",那写 "../node_modules" 才对——这点极易搞反。
搜索时临时跳过某些文件夹(不用改配置)
适合一次性操作或测试场景:打开 Find in Files 面板后,在右下角「Where」输入框里直接指定路径和排除规则:
- 只搜
src下:输入src - 搜
src但排除src/test:输入src,-src/test - 排除多个:用逗号分隔,如
.,-node_modules,-dist,-.git - 注意逗号前后不能有空格,否则 Sublime 会忽略排除项
这个语法优先级高于 .sublime-project 里的设置,适合快速验证是否真被过滤掉了。
为什么改了 folder_exclude_patterns 还是搜到 node_modules
最常见原因有三个:
- 改的是用户设置(
Preferences.sublime-settings)而不是项目设置——搜索逻辑不读这里 -
folder_exclude_patterns值写成了绝对路径(如/Users/xxx/project/node_modules),应该只写文件夹名 - 项目已加载,但没重启 Sublime 或没重新打开文件夹(Sublime 不会热重载项目设置)
验证是否生效:打开侧边栏,看对应文件夹是否已折叠消失。如果还在,说明配置根本没加载成功——先解决这个,再谈搜索。










