关掉 index_files 是解决 sublime 卡顿和启动慢最直接有效的一步,因其默认全项目索引会疯狂扫描文件、触发高频重扫,导致内存飙升和主线程卡死;关闭后冷启动可从8秒降至0.8秒。

关掉 index_files 是解决 Sublime 卡顿和启动慢最直接有效的一步,不是插件、不是主题、也不是硬件问题——是它默认开启的全项目索引在后台疯狂扫描文件,尤其遇到 node_modules 这类目录时,内存飙升、主线程卡死,冷启动从 8 秒压到 0.8 秒很常见。
为什么 index_files 是头号性能杀手
它不是“慢一点”,而是设计上就对大目录不友好:启动时递归遍历所有子目录,对每个文件做 stat() 系统调用,再构建符号数据库。macOS 的 FSEvents、Windows 的 ReadDirectoryChangesW 在这种场景下极易触发高频重扫。你看到的“卡在启动界面”或“打开项目后 CPU 持续 100%”,八成是它在后台干活。
操作很简单:
打开 Preferences → Settings,在右侧用户设置中加这一行:
"index_files": false
副作用明确:Ctrl+R(跳转定义)、Ctrl+Shift+R(查找全部引用)、Go to Definition 全部失效;但 Ctrl+P(按文件名搜索)和 Ctrl+Shift+F(全局文本搜索)仍可用。
- 如果还想保留部分能力,别全局关,改用项目级排除:右键侧边栏文件夹 →
Add to Project Exclude List,或在Project → Edit Project中写"folder_exclude_patterns": ["node_modules", ".git", "__pycache__"] - 注意:
folder_exclude_patterns写在用户设置里无效,必须进项目配置才起作用 - 某些 LSP 插件(如
sublime-lsp)会绕过这个设置继续索引,得单独关它的enable_indexing或设"only_on_paths": ["src/"]
哪些插件最常拖垮启动和运行
不是所有插件都平等。有些在启动瞬间就阻塞主线程,有些则长期轮询、监听、解析,导致 CPU 和内存双高。GitGutter、LSP 类插件、SublimeLinter 是高频背锅侠。
-
GitGutter:Windows 上因文件监控机制,在大仓库或网络盘里频繁重扫;可在其Settings – User中加"non_blocking": true或"enable_git_gutter": false -
sublime-lsp/pylsp:默认全项目加载,打开 Python/Java 大项目时后台持续分析;建议先禁用,再通过插件自身设置限定路径,比如只对src/启用 -
Package Control:默认开启自动更新,每次启动都尝试连 GitHub,国内用户常卡在超时等待;进Preferences → Package Settings → Package Control → Settings – User,加"auto_upgrade": false和"channels": [] - 任何带
sublime_plugin.EventListener且监听on_activated或on_load的插件,若内部有阻塞 I/O(比如读本地配置、查网络),都会拉长响应时间
缓存和残留状态必须手动清,光改设置没用
很多人调完 index_files、禁掉插件,重启后还是慢——因为 Session.sublime_session 和 Index/ 缓存没删。它们体积可能达几百 MB,重启不清理,等于白调。
- 先彻底退出 Sublime:Windows 查任务管理器确认
sublime_text.exe进程消失;macOS 用活动监视器查Sublime Text - 删空以下目录(路径因系统而异):
Windows:%APPDATA%\Sublime Text\Cache和%LOCALAPPDATA%\Sublime Text\Cache
macOS:~/Library/Application Support/Sublime Text/Cache和~/Library/Caches/Sublime Text
Linux:~/.config/sublime-text/Cache和~/.cache/sublime-text - 同级的
Index/目录也必须一并清空——它存的是全文搜索和Goto Definition的底层数据库,损坏后补全延迟、跳转失败都源于此 - 顺手删掉
Local/Session.sublime_session:Windows 路径是%APPDATA%\Sublime Text\Local\,macOS 是~/Library/Application Support/Sublime Text/Local/
处理大文件时别让它当“全能查看器”用
语法高亮、自动换行、折叠按钮、空格高亮……这些功能对几百 MB 的日志或 dump 文件全是负担。不是加载慢,是渲染慢——尤其是超长行开启 word_wrap 时,Sublime 会反复计算软换行位置,CPU 直接拉满。
- 打开大文件前,先切到
Plain Text模式(菜单View → Syntax → Plain Text),避免触发任何sublime-syntax解析 - 关掉自动换行:
"word_wrap": false;清空标尺:"rulers": [];关掉折叠按钮:"fold_buttons": false和"enable_fold_buttons": false - 别信右下角状态栏显示的 “JSON” 或 “JavaScript”——那是 Sublime 自动猜的,一加载就开扫,必须手动切回
Plain Text - 超过 2GB 或需正则替换上百万次时,别硬撑:用
less(Linux/macOS)或more(Windows Terminal)纯查看,零内存占用;用grep -n "error" app.log | head -20定位后再贴行号进 Sublime 用Ctrl+G跳转,比全文find_in_files快一个数量级
真正卡顿的根源往往藏在 Index/ 和 Local/ 这两个目录里,而不是你刚改的那行设置。改完记得彻底退出再删,否则文件被占用删不掉,优化就白做了。











