应在 .sublime-project 文件的 folders 对象内配置 folder_exclude_patterns: ["node_modules", "venv", ".git", "dist"],路径相对于 path 字段;全局用户设置无效且易误伤。

如何在 Sublime Text 的全局搜索中跳过 node_modules、venv 等目录
默认情况下,Sublime Text 的 Find in Files(Ctrl+Shift+F / Cmd+Shift+F)会遍历整个打开的文件夹,包括所有子目录。想排除第三方依赖目录,不能靠界面勾选,必须改配置项。
核心是设置 folder_exclude_patterns —— 它控制「哪些文件夹连搜索都不进」,比 file_exclude_patterns 更彻底(后者只跳过匹配的文件,不跳过整个目录)。
实际操作分两步:先确认当前工作区类型(单文件夹 vs 多文件夹 vs 项目),再修改对应层级的设置。
- 如果是单文件夹打开(
File → Open Folder...),直接改Preferences → Settings – Syntax Specific是无效的;应编辑Preferences → Settings – User或更推荐——用Project → Edit Project加入folders配置块 - 若已用
Project → Save Project As...保存了.sublime-project文件,优先在此文件中配置,避免影响其他项目 -
folder_exclude_patterns值是字符串数组,支持通配符但不支持正则;常见写法:"node_modules"、"__pycache__"、、<code>".git"
folder_exclude_patterns 和 file_exclude_patterns 到底该用哪个
二者作用域不同,容易混用错:
-
folder_exclude_patterns:完全跳过匹配名称的**整个文件夹及其所有子内容**。搜索、侧边栏显示、Goto Anything 都不可见。适合node_modules、dist、build -
file_exclude_patterns:仅跳过匹配的**文件路径**(如"*.log"、"*.tmp"),但文件夹仍会被遍历,性能损耗仍在 - 如果只加了
file_exclude_patterns却没加folder_exclude_patterns,搜node_modules下的代码时依然卡顿,因为 Sublime 还是在一层层读目录结构
多语言项目怎么写更稳妥:Python + JS 混合项目示例
混合项目常同时存在 venv、node_modules、__pycache__、.next 等目录,硬编码容易漏。建议在 .sublime-project 中统一管理:
{
"folders":
[
{
"path": ".",
"folder_exclude_patterns": ["node_modules", "venv", "__pycache__", ".git", ".next", "dist", "build"]
}
]
}
注意几点:
- 路径用相对写法(
"."表示项目根),不要写绝对路径,否则换机器失效 - 大小写敏感:Windows 下
"Node_modules"不生效,必须小写"node_modules" - Sublime 不会自动重载项目配置,改完
.sublime-project后需关闭再重新打开项目,或执行Project → Refresh Folders
为什么改了配置还是搜到了 node_modules 里的结果
最常见三个原因:
- 搜索时勾选了
Where输入框里的自定义路径(比如填了./或*),这会覆盖folder_exclude_patterns,直接无视排除规则 - 用了
Find in Files的「Open files only」模式(顶部下拉选中了它),此时只搜已打开的标签页,和文件夹配置无关;要搜整个项目,必须选All Files或留空 - 项目里有嵌套子文件夹被单独添加进了
folders数组(比如手动加了"path": "node_modules/some-pkg"),这种显式包含会绕过排除逻辑
排查顺序:先确认 Where 输入框为空或填的是顶层路径;再检查 .sublime-project 是否有多余的 folders 条目;最后看是否误启用了「Open files only」。


















