关掉 index_files 是最立竿见影的手段:在用户设置中添加 "index_files": false 可使 CPU 从 70%+ 降至 1–3%,但 Ctrl+P 仅搜已打开文件,F12 等功能失效;推荐改用项目级 folder_exclude_patterns 精准排除 node_modules 等目录以兼顾性能与功能。

关掉 index_files 是最立竿见影的手段
Sublime CPU 飙高,八成以上是 index_files 在后台疯狂扫描项目文件导致的——尤其是打开含 node_modules、dist、.git 的项目时,它会逐个读取成千上万个文件建跳转数据库,根本停不下来。
- 直接在
Preferences → Settings右侧用户设置里加这一行:{ "index_files": false },保存后重启,CPU 通常立刻从 70%+ 回落到 1–3% - 副作用很明确:
Ctrl+P只能搜已打开的文件名,不再匹配路径或内容;F12(Go to Definition)、Find All References这类依赖符号索引的功能全部失效 - 如果你主要写脚本、查日志、做配置,这完全不是问题;但如果是 Python/JS 大型工程开发,建议改用「排除目录」方案代替全关
精准排除 node_modules 等目录(推荐开发者首选)
保留索引功能,但不让它碰“脏目录”,这才是兼顾效率与功能的平衡点。关键是把排除规则写进项目配置,而不是全局设置——避免影响其他小项目。
- 打开项目后,选
Project → Edit Project,在 JSON 中补全folder_exclude_patterns和file_exclude_patterns: { "folders": [ { "path": ".", "folder_exclude_patterns": ["node_modules", "__pycache__", ".git", "dist", "build"], "file_exclude_patterns": ["*.log", "*.tmp", "*.zip"] } ] }- 这样 Sublime 和 LSP 插件都不会加载这些目录,索引速度提升 5–10 倍,CPU 占用从 80%+ 降到 10% 以内
- 容易踩的坑:
folder_exclude_patterns只作用于项目根目录下的子目录;如果依赖在更深层(如src/lib/node_modules),得靠 LSP 插件自身的initializationOptions单独配置
定位 plugin_host 进程高 CPU 的元凶插件
plugin_host 是 Sublime 运行 Python 插件的独立进程,一旦它持续占满一个 CPU 核,基本可以断定是某个插件失控了——比如 LSP 服务器反复崩溃重启、SublimeLinter 在大文件上实时跑校验、或者 GitGutter 持续轮询状态。
- 启动时加
-safe-mode参数:subl -safe-mode(命令行),如果 CPU 正常,说明问题出在插件 - 打开控制台(
Ctrl+`),重点看有没有重复报错、starting...循环日志,或 Python traceback - 高频嫌疑插件:LSP-pyright / LSP-eslint、SublimeLinter、AutoFileName、GitGutter、Terminus;可临时禁用它们测试:
Preferences → Package Control → Disable Package - 对必须用的 LSP 插件,务必检查其项目级配置是否也排除了
node_modules,否则它会自己再扫一遍——和 Sublime 主索引形成双重负担
别忽略构建任务和大文件的隐性消耗
很多人只盯着插件和索引,却忘了 Sublime 的构建系统(Build System)和超大文件处理也会持续抢 CPU。
- 检查
Tools → Build Results → Show Build Results,确认没有死循环脚本或卡住的npm run dev这类命令;按Ctrl+Break(Windows/Linux)或Cmd+.(macOS)可中断当前构建 - 打开 >10MB 的日志或单行长文本时,语法高亮 + 自动换行会触发高强度渲染;临时设为
Plain Text、关掉Word Wrap、甚至加配置"large_file_size": 10让它自动降级 - 某些杀毒软件或云同步工具(如 OneDrive、Dropbox)正在实时扫描
Data/Cache/或Data/Packages/User/目录,也会让 Sublime 表现出异常 CPU 占用——可尝试暂时退出这些工具验证
真正难排查的,往往是多个因素叠加:比如项目没排除 __pycache__,又装了未调优的 LSP,再开着 Terminus 跑 watch 任务——这时单关一个开关没用,得一层层剥开看。











