sublime text全局搜索变慢90%源于index_files默认开启导致node_modules等目录被全量索引;应关闭index_files、正确配置where输入框(如., -/node_modules/)并调整binary_file_patterns排除误判二进制文件。

Sublime Text 全局搜索变慢,90% 是因为 index_files 在后台疯狂扫描 node_modules、.git、dist 这类目录——它不是“搜得慢”,是根本在搜不该搜的东西。
关掉 index_files 是最直接有效的操作
默认开启的 index_files 会让 Sublime 启动时递归遍历整个项目路径,构建符号数据库。几万文件一扫,CPU 拉满、内存飙到 1.5GB+,连带 Ctrl+Shift+F 响应延迟、结果面板卡顿、甚至右下角一直显示 “Indexing…”。
- 打开
Preferences → Settings,在右侧用户设置中添加:"index_files": false - 必须完全退出 Sublime 再重启,仅重载设置无效——索引上下文已固化在进程里
- 副作用明确:
Ctrl+R(函数跳转)、Find All References失效;但Ctrl+P(按文件名)、Ctrl+Shift+F(文本内容搜索)完全不受影响
Where 输入框填错,等于白搜
Ctrl+Shift+F 的搜索范围完全由面板右下角的 Where 输入框控制,项目级 folder_exclude_patterns 或全局设置对它完全无效。
- 搜整个项目:必须填
.(单个英文点),不是./,也不是留空 - 只搜
src/下所有文件(含子目录):填src/,别写src/*或/src/ - 排除干扰目录:写成
., -/node_modules/, -/dist/, -*/__pycache__/(逗号后必须加空格,斜杠方向统一用/) - 大小写敏感:Linux/macOS 下
Node_modules不会被node_modules排除
binary_file_patterns 悄悄拖慢搜索
即使你已在 Where 或项目配置中排除了 node_modules,搜索仍可能卡顿或漏结果——问题常出在 binary_file_patterns。Sublime 默认把 .wasm、.zip、.min.js 等识别为二进制文件,跳过内容扫描。但如果你项目里有自定义文本格式(如 .gql、.schema),又没从该列表移除,它们就会被当成二进制忽略。
- 检查方法:打开一个疑似被跳过的文件,看右下角状态栏是否显示编码(如 UTF-8),若显示
Binary file,说明被误判 - 在用户设置中补充:
"binary_file_patterns": ["*.log", "*.dump", "*.min.js", "*.pdf", "*.zip"] - 注意:
binary_file_patterns支持通配符,不支持正则;logs/*有效,logs/**/*.log无效
别信“插件越多越强”,LSP 和 GitGutter 最容易拖垮性能
LSP 类插件(如 sublime-lsp + pylsp)不是装上就跑,它会在后台持续 fork 进程、加载 AST、响应 on_input 事件。GitGutter 则每秒轮询文件变更,尤其在大项目中,这两个插件叠加 index_files,就是卡顿三连击。
- 验证方式:退出 Sublime,按住
Ctrl(Windows/Linux)或Cmd(macOS)再双击启动 —— 若此时输入丝滑,说明问题出在索引或插件 - 临时禁用插件:菜单
Preferences → Package Control → Disable Package,逐个关掉SublimeLSP、GitGutter、EditorConfig等高负载插件 - 不想彻底卸载?改用命令面板
Ctrl+Shift+P输lsp disable或git gutter toggle,按需开关
真正影响搜索速度的,从来不是硬盘或 CPU,而是你有没有让 Sublime 少干点无用功——index_files 关不关、Where 填不填对、binary_file_patterns 配不配准,这三件事没做对,其他优化都是隔靴搔痒。











