您的当前位置:首页>全部文章>文章详情

如何设置全局搜索排除文件夹?(过滤规则)

作者/来源:php中文网 发表于:2026-03-09 10:37:39浏览:1917次 TAG: #sublime 收藏
在sublime text中跳过node_modules等文件夹需在项目设置(project → edit project)的folders对象内配置folder_exclude_patterns,如["node_modules", ".git", "dist"],而非用户设置;临时过滤可在搜索面板的exclude folders栏用竖线分隔填写。

全局搜索怎么跳过 node_modules 这类文件夹?

Sublime Text 默认会搜整个项目,但 node_modules.gitdist 这些目录不仅拖慢速度,还让结果杂乱。关键不是“能不能”,而是得在正确位置填对规则。

  • 规则写在 Preferences → Settings – Project 里,不是用户设置(改错地方就无效)
  • 用 folder_exclude_patterns 控制文件夹过滤,值是字符串数组,支持通配符但不支持正则
  • 常见误写:"node_modules/"(带斜杠)或 "**/node_modules"(Sublime 不认双星号)——都无效,只写 "node_modules" 就行
  • 如果项目有嵌套子文件夹也想一并排除,比如 packages/*/node_modules,得单独加一行 "packages/*/node_modules"

为什么改了 settings 搜索还是没生效?

最常踩的坑是:改了「用户设置」或「默认设置」,但 Sublime 的项目搜索只认当前项目的 settings。它优先级最高,且必须是 JSON 格式、结构完整。

  • 打开 Project → Edit Project,确保里面是合法 JSON,且外层有 "folders" 字段
  • folder_exclude_patterns 必须放在 "folders" 数组每个对象内部,不是平级字段
  • 错误示例:
{"folder_exclude_patterns": ["node_modules"]}

—— 缺少 "folders" 包裹,完全不生效

正确结构片段:

{
  "folders": [
    {
      "path": ".",
      "folder_exclude_patterns": ["node_modules", ".git", "dist"]
    }
  ]
}

 

搜索时临时跳过某些目录,不想改项目配置?

适合快速排查或临时操作,不用动任何配置文件。

  • 按 Ctrl+Shift+F(Windows/Linux)或 Cmd+Shift+F(macOS)唤出搜索面板
  • 点右下角 Where 输入框旁的 ... 按钮,展开路径过滤器
  • 在 Exclude folders 栏直接填 node_modules|dist|.next,用竖线分隔多个名称
  • 注意:这里填的是文件夹名(不是路径),不支持通配符;大小写敏感,Node_modules 不会被匹配

exclude_patterns 和 file_exclude_patterns 有什么区别?

名字像,但作用完全不同,混用会导致预期外的行为。

  • folder_exclude_patterns:只影响文件夹层级,跳过整个目录及其所有子内容
  • file_exclude_patterns:只跳过匹配的文件名,比如 "*.log" 或 "temp.*",对文件夹完全无效
  • 两者可共存,但别指望用 file_exclude_patterns 来屏蔽 node_modules——它根本不会被扫描到文件层面
  • 如果同时设了 folder_exclude_patterns 和 binary_file_patterns,后者只影响内容搜索(比如跳过 PDF 里的文本),和目录过滤无关

项目里嵌套多层 node_modules(比如 monorepo)时,光靠 folder_exclude_patterns 只能排除同级目录;真要扫清,得确认每个子项目是否都独立声明了 folders 配置——Sublime 不会自动递归继承。