关掉 index_files 是最立竿见影的优化,因其后台全项目索引(含 node_modules)导致内存飙升、UI 冻结;关闭后 Ctrl+R 失效,但 Ctrl+P 和全局搜索不受影响。

关掉 index_files 是最立竿见影的一步,不是插件、不是大文件、不是显卡——是它在后台默默扫描整个项目建索引,一碰到 node_modules 就内存飙到 2GB+、UI 冻结、Ctrl+P 都要卡三秒。
为什么 index_files 必须关,且不能只靠排除目录
Sublime 默认开启全项目索引,递归扫描所有子目录(包括你没点开的 node_modules、.git、dist),构建符号跳转和搜索数据库。这个过程不看侧边栏是否显示,也不管你当前编辑哪个文件,只要目录在项目里,就照扫不误。
-
index_files设为false后,Ctrl+Click跳转定义、Find All References会失效,但Ctrl+P(按文件名)、Ctrl+Shift+F(全局文本搜索)完全不受影响 -
folder_exclude_patterns在用户设置里写是无效的——它只控制侧边栏显示,不阻止索引扫描;必须写进项目配置(Project → Edit Project)或用右键Add to Project Exclude List - 某些 LSP 插件(如
pylsp)会无视folder_exclude_patterns,继续扫描被排除的目录,所以index_files全局关仍是兜底动作
打开大文件前必须做的三件事
不是等它卡住再抢救,而是在双击之前就干预:语法高亮、自动换行、行号渲染,这三项对超长行或百万行日志是性能核弹。
- 先切
Plain Text模式:菜单View → Syntax → Plain Text,或右键状态栏语言名 →Open all with current extension as… → Plain Text;别信右下角自动识别的JSON,一加载就开始解析 - 立刻关
word_wrap:超长行开启自动换行时,Sublime 会反复计算软换行位置,CPU 拉满;在用户设置中加"word_wrap": false - 临时关
line_numbers和highlight_line:行号区重绘在光标悬停或滚动时触发,对千万行文件是纯负担;命令面板输View: Toggle Line Numbers可即时关闭
--safe-mode 不是备用方案,是诊断和应急的首选手段
当你不确定是配置错、插件冲突还是缓存损坏时,--safe-mode 是唯一能快速验证的路径。它跳过所有插件、不读用户设置、不建项目索引,只保留最基础的编辑能力。
- macOS/Linux 终端执行:
subl --safe-mode /path/to/bigfile.log - Windows 命令提示符:
subl.exe --safe-mode "C:\data\huge.json" - 实测:1.2GB 日志在
--safe-mode下 8 秒内可滚动;若此时仍卡,说明问题出在系统级(如磁盘 I/O 或杀毒软件拦截),而非 Sublime 自身 - 注意:
--safe-mode不保存设置,退出即恢复,适合临时查看,不适合日常编辑
缓存清理不是“删 Cache 文件夹”,而是三处必须同步清空
只删 Cache 目录,等于只擦了黑板没擦粉笔灰——真正卡顿的元凶常藏在 Index 和 Local 里。这些目录长期运行后会残留损坏索引、UI 状态碎片、插件编译产物。
- 必须同时清空:
Cache、Local/Index、Local/Session(路径因系统而异,Windows 在%APPDATA%\Sublime Text\和%LOCALAPPDATA%\Sublime Text\) - 删之前务必完全退出 Sublime:Windows 查任务管理器确认
sublime_text.exe进程消失,macOS 用活动监视器确认进程结束 - LSP 类插件(如
pyright、texlab)的缓存常驻Cache子目录,需手动搜文件名并整文件夹删除,否则重装同名插件会复用旧索引
真正容易被忽略的是:index_files 关闭后,Ctrl+R(跳转符号)就彻底不可用了,但很多人仍习惯性按,然后等三秒才意识到该换 Ctrl+P;还有就是 --safe-mode 启动的大文件,改完保存时不会走 GitGutter 或 LSP 校验,这点得心里有数。


















