如何设置全局搜索排除文件夹?(过滤规则)
作者/来源:php中文网 发表于:2026-03-09 10:37:39浏览:1917次
收藏
在sublime text中跳过node_modules等文件夹需在项目设置(project → edit project)的folders对象内配置folder_exclude_patterns,如["node_modules", ".git", "dist"],而非用户设置;临时过滤可在搜索面板的exclude folders栏用竖线分隔填写。
全局搜索怎么跳过 node_modules 这类文件夹?
Sublime Text 默认会搜整个项目,但 node_modules、.git、dist 这些目录不仅拖慢速度,还让结果杂乱。关键不是“能不能”,而是得在正确位置填对规则。
- 规则写在
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 不会自动递归继承。