folder_exclude_patterns不生效是因为它必须写在项目配置(.sublime-project)的folders数组内各path对象中,而非用户设置或顶层;修改后需重启或刷新文件夹才能重新索引。

为什么 folder_exclude_patterns 不生效?
Sublime 的索引加速不是靠“禁用索引”,而是靠“不让它看到某些路径”——所以必须在项目配置或全局设置里明确告诉它哪些文件夹跳过扫描。常见错误是把规则写在用户设置(Preferences.sublime-settings)里,但实际只对当前项目生效的配置得放在 .sublime-project 文件中。
- 项目级排除优先于全局设置,且更精准
-
folder_exclude_patterns 是数组,每个元素是字符串通配符(如 "node_modules"、"build/*"),不支持正则
- 路径匹配基于项目根目录下的相对路径,不是绝对路径
- 修改后需重启 Sublime 或执行
Project → Refresh Folder 才会重新触发索引
如何正确写 .sublime-project 排除规则?
直接编辑项目配置文件比改全局设置安全,也避免影响其他项目。重点在于结构清晰、路径准确。
- 必须包含
"folders" 数组,即使只有一个文件夹
-
"folder_exclude_patterns" 要写在每个 "path" 对应的对象里,不是顶层字段
- 常见误写:
"folder_exclude_patterns" 放在顶层,结果完全被忽略
- 示例有效结构:
{
"folders": [
{
"path": ".",
"folder_exclude_patterns": ["node_modules", "dist", "build", "__pycache__"]
}
]
}
file_exclude_patterns 和 folder_exclude_patterns 有什么区别?
前者管“文件”,后者管“文件夹”,两者互不替代,也不能混用。
-
file_exclude_patterns:跳过匹配的文件名(如 "<em>.log"</em>、".tmp"),但这些文件所在文件夹仍会被索引(只是不读内容)
-
folder_exclude_patterns:整个文件夹不进入索引流程,连目录结构都不扫描,性能提升更明显
- 如果你只想跳过日志文件但保留
logs/ 文件夹结构,用前者;如果整个 node_modules 都不想碰,必须用后者
排除后为什么搜索(Ctrl+Shift+F)还是慢?
索引排除只影响 Goto Anything(Ctrl+P)、符号跳转和侧边栏展开速度,不影响全文搜索本身。搜索变慢通常是因为:
- 搜索范围默认包含所有打开的文件夹,哪怕它们已被排除索引
- 没限定搜索路径:执行搜索时,在输入框上方点击
Where: 右侧箭头,手动删掉不需要的路径
- 后台仍在扫描新加入的文件:确认没有临时文件夹被意外加入项目(比如通过拖拽进来了一个大日志目录)
folder_exclude_patterns 是数组,每个元素是字符串通配符(如 "node_modules"、"build/*"),不支持正则Project → Refresh Folder 才会重新触发索引.sublime-project 排除规则?
直接编辑项目配置文件比改全局设置安全,也避免影响其他项目。重点在于结构清晰、路径准确。
- 必须包含
"folders"数组,即使只有一个文件夹 -
"folder_exclude_patterns"要写在每个"path"对应的对象里,不是顶层字段 - 常见误写:
"folder_exclude_patterns"放在顶层,结果完全被忽略 - 示例有效结构:
{
"folders": [
{
"path": ".",
"folder_exclude_patterns": ["node_modules", "dist", "build", "__pycache__"]
}
]
}
file_exclude_patterns 和 folder_exclude_patterns 有什么区别?
前者管“文件”,后者管“文件夹”,两者互不替代,也不能混用。
-
file_exclude_patterns:跳过匹配的文件名(如 "<em>.log"</em>、".tmp"),但这些文件所在文件夹仍会被索引(只是不读内容)
-
folder_exclude_patterns:整个文件夹不进入索引流程,连目录结构都不扫描,性能提升更明显
- 如果你只想跳过日志文件但保留
logs/ 文件夹结构,用前者;如果整个 node_modules 都不想碰,必须用后者
排除后为什么搜索(Ctrl+Shift+F)还是慢?
索引排除只影响 Goto Anything(Ctrl+P)、符号跳转和侧边栏展开速度,不影响全文搜索本身。搜索变慢通常是因为:
- 搜索范围默认包含所有打开的文件夹,哪怕它们已被排除索引
- 没限定搜索路径:执行搜索时,在输入框上方点击
Where: 右侧箭头,手动删掉不需要的路径
- 后台仍在扫描新加入的文件:确认没有临时文件夹被意外加入项目(比如通过拖拽进来了一个大日志目录)
file_exclude_patterns:跳过匹配的文件名(如 "<em>.log"</em>、".tmp"),但这些文件所在文件夹仍会被索引(只是不读内容)folder_exclude_patterns:整个文件夹不进入索引流程,连目录结构都不扫描,性能提升更明显logs/ 文件夹结构,用前者;如果整个 node_modules 都不想碰,必须用后者Ctrl+Shift+F)还是慢?
索引排除只影响 Goto Anything(Ctrl+P)、符号跳转和侧边栏展开速度,不影响全文搜索本身。搜索变慢通常是因为:
- 搜索范围默认包含所有打开的文件夹,哪怕它们已被排除索引
- 没限定搜索路径:执行搜索时,在输入框上方点击
Where:右侧箭头,手动删掉不需要的路径 - 后台仍在扫描新加入的文件:确认没有临时文件夹被意外加入项目(比如通过拖拽进来了一个大日志目录)
排除文件夹这事,关键不在“写对语法”,而在于理解 Sublime 索引是“按项目加载时一次性构建”的——改完配置不刷新、不重启,它根本不会重新评估哪些该跳过。











