hot_exit 设为 "always" 时关窗口不退出进程而是驻留后台,下次启动复用进程实现快速加载;需用 Ctrl+Q/Cmd+Q 或 subl --command exit 才真正退出。

hot_exit 设为 true 或 "always" 即可实现终端关闭后 Sublime 进程驻留,但必须理解它不是“后台服务”,而是退出时跳过真正销毁流程——关窗口 ≠ 退出程序。
为什么关掉终端窗口 Sublime 还在运行?
这是 hot_exit 的默认行为(Sublime Text 4 默认为 "always"),它让编辑器在你点击窗口右上角 × 或 Cmd+W 关闭最后一个标签页时,并不真正退出进程,而是转入后台驻留状态。下次启动 subl 命令会复用该进程,而非新建,因此启动极快。
- Windows/Linux 下:关窗口后任务管理器仍可见
sublime_text.exe - macOS 下:菜单栏图标仍在,Dock 中图标有小点,
killall "Sublime Text"才能彻底杀掉 - 这不是 bug,是设计——但容易被误认为“卡死”或“没关干净”
如何确认 hot_exit 当前值?
打开 Preferences → Settings – User(右侧),查找是否有 "hot_exit" 行。若无,则以 Sublime Text 4 默认值 "always" 运行;若存在,注意它的值只能是 "always"、"only_on_quit" 或 "disabled"(别用 true/false,旧版语义模糊)。
-
"always":关窗口、关标签、Ctrl+Q 全部跳过退出确认,进程驻留 -
"only_on_quit":仅 Ctrl+Q / File → Exit 时驻留,关单个窗口仍会弹保存提示 -
"disabled":彻底禁用热退出,每次退出都真实销毁进程并写入会话文件
关终端后进程还在,但想让它真正退出怎么办?
不能只靠关窗口,必须触发“完整退出”动作:
- Windows/Linux:
Ctrl+Q或菜单File → Exit - macOS:
Cmd+Q(不是关所有窗口) - 命令行下:
subl --command exit(需 Sublime Text 4.4+) - 强制清理残留:
killall "Sublime Text"(macOS)、任务管理器结束所有sublime_text.exe(Windows)
注意:hot_exit: "always" 下,哪怕你关了所有窗口,只要没执行 Cmd+Q 或 Ctrl+Q,进程就一直挂着——这也是为什么改了设置后不重启,新行为不生效的根本原因。
插件或命令行调用会绕过 hot_exit 吗?
不会绕过,但会干扰预期行为:
-
subl .或subl file.py:复用已有进程,hot_exit状态不变,但可能覆盖当前会话(尤其未设restore_open_projects时) - 某些插件(如 AutoSave、Project Manager)会在退出前主动调用
exit命令,导致驻留失效 - 如果设置了
save_on_focus_lost: true,进程驻留期间仍会自动落盘,但未保存的“脏”标签页状态仍保留在内存中,下次启动原样恢复
真正容易被忽略的是:hot_exit 控制的是进程生命周期,不是文件保存逻辑。它驻留得再稳,若你中途断电或被 kill -9 强杀,Auto Save Session.sublime_session 就不会更新——下次启动看到的,还是上次成功退出时的状态。


















