关掉index_files是最直接有效的手段,90%以上内存暴涨源于其默认开启后对node_modules等目录的全量扫描,必须完全退出并重启才生效,否则旧索引上下文仍驻留内存。

关掉 index_files 是最直接有效的手段,90% 以上的内存暴涨都源于它默认开启后对 node_modules 等目录的全量扫描。
为什么 index_files 是头号元凶
Sublime Text 启动后会递归扫描所有项目文件,构建符号跳转(Ctrl+R)、模糊文件搜索(Ctrl+P)所需的索引数据库。一旦项目里有 node_modules(几万文件)、.git、dist 或日志目录,它就在后台持续 stat()+read()+解析,CPU 拉满、内存涨到 1GB+ 且不释放。
这不是“慢”,是你在敲字时,编辑器正同步干着比编译还重的活。
验证方式:完全退出 Sublime,按住 Ctrl(Windows/Linux)或 Cmd(macOS)再双击启动 —— 若此时输入丝滑,说明问题出在索引或插件。
- 在
Preferences → Settings右侧用户设置中添加:"index_files": false - 必须完全退出 Sublime 再重启,仅重载设置无效 —— 旧索引上下文已驻留内存
- 副作用:
Go to Definition、Find All References失效;但Ctrl+P(按文件名跳转)、Ctrl+Shift+F(全局文本搜索)仍可用 - 若你依赖语义跳转,别全局关,改用
folder_exclude_patterns配合保留索引
用 folder_exclude_patterns 精准排除高危目录
全局关 index_files 虽快,但牺牲了部分功能;更细粒度的做法是让 Sublime “假装看不见”某些目录,既保功能又控内存。
操作路径:Project → Edit Project,在 folders 配置块内加入:
{
"folders": [
{
"path": ".",
"folder_exclude_patterns": ["node_modules", "__pycache__", ".git", "dist", "build", "logs"],
"file_exclude_patterns": ["*.log", "*.tmp", "*.zip", "*.tar.gz"]
}
]
}
folder_exclude_patterns 影响最大:排除后,这些目录连图标都不会显示在侧边栏,彻底隔离;file_exclude_patterns 主要防误搜,对内存影响小。
- 这个配置只对当前项目生效,新开项目需单独配;若用
subl .打开,确保当前目录下有.sublime-project文件 - 它对 LSP 插件也生效,比如
pylsp不会再扫描node_modules里的 Python 文件 - 别只改用户设置 —— 项目级配置优先级更高,且对团队协作更可控
清理顽固缓存和索引残留
长期使用后,Cache 和 Index 目录会残留损坏条目或冗余快照,导致每次启动都多载几百 MB 无用数据。尤其 LSP 类插件的缓存,重装同名插件时会复用旧索引,卡顿照旧。
必须先完全退出 Sublime(包括托盘进程),再删除以下路径:
- macOS:
~/Library/Application Support/Sublime Text/Cache、~/Library/Caches/Sublime Text/、~/Library/Application Support/Sublime Text/Local/Index - Windows:
%APPDATA%\Sublime Text\Cache、%LOCALAPPDATA%\Sublime Text\Cache、%LOCALAPPDATA%\Sublime Text\Local\Index - Linux:
~/.config/sublime-text/Cache、~/.cache/sublime-text/、~/.config/sublime-text/Local/Index
删完首次启动稍慢属正常,它会重建基础缓存;但不会再加载旧索引,卡顿基本解除。
特别注意:LSP 插件(如 pyright、texlab)的缓存不清理,下次装同名插件会直接复用旧索引 —— 这类文件夹名通常含 lsp、pyright、anaconda,进缓存目录后手动搜删。
处理大文件时的即时降载设置
打开超大文件(如日志、dump)前,光靠关索引不够,语法高亮、行号、自动换行这些 UI 渲染项才是卡顿真因。
临时方案(单文件生效):View → Syntax → Open all with current extension as → Plain Text,避免触发任何 sublime-syntax 解析。
更彻底的做法是加 syntax-specific 设置:打开大文件 → 确认右下角显示为 Plain Text → Preferences → Settings – Syntax Specific,填入:
{
"line_numbers": false,
"gutter": false,
"highlight_line": false,
"word_wrap": false,
"draw_white_space": "none",
"draw_indent_guides": false,
"auto_complete": false
}
别信右下角状态栏显示的“JSON”或“JavaScript”——那是 Sublime 自动猜的,一加载就开扫;必须手动切回 Plain Text。
顺手关掉 "enable_memory_mapping": true(对 >10MB 文件提升明显),并设 "large_file_size_mb": 50 显式放宽加载阈值。
最后提醒:Sublime 本质仍是面向编辑的 GUI 工具。超过 2GB 或需百万次正则替换时,它的内存模型和事件循环就不是设计目标了 —— 此时该用 less、grep 或专用查看器,而不是硬调参数。











