崩溃后未弹出“恢复编辑器”提示,需检查files.hotExit设为onExitAndWindowClose、window.restoreWindows设为all、files.autoSave非off,三者缺一不可;否则即使缓存完好也无法触发恢复。

崩溃后没弹出“恢复编辑器”提示,先检查这三个设置
VSCode 异常退出后不弹窗,大概率不是缓存丢了,而是关键开关被关了或配置失效。它不会主动告诉你“我没法恢复”,只会安静地打开一个空窗口。
-
files.hotExit必须是onExitAndWindowClose(默认值),设成off或onExit时,强制杀进程(如任务管理器结束Code.exe)就完全不触发恢复 -
window.restoreWindows得设为all,否则即使有快照,也只开欢迎页,连上次打开哪个文件夹都不知道 -
files.autoSave虽然不直接影响崩溃恢复,但如果它是off且files.hotExit又失效,未保存内容就真没了——磁盘没写,缓存又没读,双保险全破
恢复失败时,手动去缓存目录捞文件
VSCode 的崩溃恢复快照存在本地,不是玄学,是实打实的文件。只要没清过缓存、磁盘没满、格式没损坏,就能翻出来。
- 路径固定:
Windows:%APPDATA%\Code\Backups\
macOS:~/Library/Application Support/Code/Backups/
Linux:~/.config/Code/Backups/ - 里面是按时间戳命名的文件夹,每个含
workspaces.json和一堆.tmp文件,后者就是未保存内容的原始文本 - 直接用 VSCode 打开这些
.tmp文件,内容可读;若乱码,用 UTF-8 编码重载即可 - 注意:该目录下文件无扩展名,也不关联语言模式,打开后需手动选对语法高亮(比如
Ctrl+Shift+P→Change Language Mode)
安全模式启动后稳定,但不确定哪个扩展在作祟
用 code --disable-extensions 能进,说明问题出在扩展,但别急着全卸载——多数崩溃发生在激活阶段,日志里藏着线索。
- 重启时加
--log参数:code --disable-extensions --log=trace,日志会输出到终端,重点关注Extension activation failed行 - 或者打开命令面板(
Ctrl+Shift+P),运行Developer: Show Running Extensions,看 “Startup” 列为Yes的那些——它们最可能在初始化时抛错 - 禁用顺序很重要:先禁用 Python、ESLint、Prettier、Remote-SSH 这类语言服务型扩展,再试;别一上来就禁 Pylance 又留 Python,因为
ms-python.python依赖ms-python.pylance,拆开反而报错更密 - 某扩展禁用后不再崩溃,去它的 GitHub Issues 搜插件 ID(如
ms-python.python)+ 关键词activation failed,90% 的情况已有 workaround 配置
Linux Wayland 或远程 SSH 下 hotExit 失效怎么办
这不是你配置错了,是平台限制。Wayland 会拦截窗口关闭信号,SSH 会切断进程组生命周期,导致 files.hotExit 根本收不到退出事件。
- 临时对策:改用
afterDelay模式配files.autoSaveDelay为1500,让内容更频繁落盘,降低单次丢失量 - 确认
.vscode/workspaces/目录下是否有当前工作区的workspace.json,若为空或缺失,说明会话快照根本没生成——此时靠缓存目录是唯一出路 - 远程开发时,把
files.autoSave设为onFocusChange比afterDelay更可靠,因为焦点切换信号比定时器更容易穿透 SSH - 别信“升级 VSCode 就好”——这个限制在 2026 年 7 月仍存在,官方 issue #14291 已标记为
wontfix
files.autoSave,不代表 files.hotExit 就生效;你清了 Backups/ 目录,也不影响下次 autoSave 继续写磁盘。它们是两条平行线,得各自调通。


















