在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 不会自动递归继承。










