大文件保存卡光标主因是atomic_save同步写盘与插件保存钩子(如GitGutter轮询、LSP诊断)双重阻塞;需禁用atomic_save、设GitGutter为non_blocking、调高LSP诊断延迟,并将大文件切Plain Text模式。

为什么大文件保存会卡住光标?
不是磁盘慢,是 Sublime 在同步等两件事:先写临时文件再原子替换(atomic_save),同时还要等所有插件的保存钩子返回——比如 GitGutter 调用 git status,LSP 触发诊断,SublimeLinter 扫全文。哪怕你只改了一行,主线程也得堵在这儿,直到全部完成。
最典型的现象是:切出窗口再切回来,光标延迟 300~800ms 才响应;或者保存后鼠标悬停在行号区,界面直接冻结 1~2 秒。
禁用 atomic_save + 关掉插件保存钩子才是关键
这不是“加配置”,而是“砍阻塞点”。以下操作必须一起做,单做一项效果有限:
- 在
Preferences → Settings – User中添加:"atomic_save": false - 进
Preferences → Package Settings → GitGutter → Settings – User,写入:{"non_blocking": true}(比直接关更稳妥,保留状态但不阻塞) - 对
LSP插件(如pyright或typescript-language-server),在其设置中设:"diagnostics_delay_ms": 2000(别设为 0,否则诊断变实时、更卡) - 确认没启用
AutoSave插件——它和save_on_focus_lost共存会导致重复保存,I/O 翻倍
大文件必须切 Plain Text 模式再保存
语法高亮器在保存前会重绘整页,尤其对含内联 <script> 的 .vue、超长 JSON 或带千行注释的 SQL 文件,正则解析直接吃满单核。这不是可调参数的问题,是渲染路径本身不可跳过。
实操方式(任选其一):
- 右下角点击当前语法名(如
Vue Component)→Open all with current extension as…→Plain Text - 快捷键
Ctrl+Shift+P→ 输入Set Syntax: Plain Text - 对特定后缀强制生效:确保当前是目标文件 →
Preferences → Settings – Syntax Specific→ 加:"syntax": "Packages/Text/Plain text.tmLanguage"
容易被忽略的底层残留问题
即使你关了 index_files、清了 Index 目录,只要没杀干净 sublime_text.exe 进程,旧索引线程仍在后台跑;而 save_on_focus_lost 卡顿,90% 都发生在你没动过设置、只是多开了一个含 node_modules 的项目。
真正要清的不止缓存:必须退出 Sublime 后手动删空 Cache 和同级的 Index 目录(路径因系统而异,Windows 是 %APPDATA%\Sublime Text\Cache 和 %LOCALAPPDATA%\Sublime Text\Index)。否则优化配置只是浮在表面。


















