现在该怎么做
- 用同一个文件夹或工作区重新打开 VS Code,Hot Exit 通常会自动恢复未保存的编辑器。
- 如果标签没有回来,请在再次启动 VS Code 之前复制 Backups 文件夹(通常是 %APPDATA%\Code\Backups)。
- 如果是保存后又被覆盖的文件,打开该文件并在时间线视图中查看本地历史记录。
- 如果用“不保存”关闭了编辑器,它的备份已被有意删除,可能只有已删除文件扫描才能找到。
操作步骤
重新打开同一文件夹或工作区
启动 VS Code,通过“文件”“打开最近的文件”等方式打开之前使用的文件夹或工作区。备份与特定窗口绑定,打开别的文件夹是看不到的。恢复出来的编辑器请立即保存。
检查 Hot Exit 设置
打开设置并搜索 files.hotExit。默认值 onExit 会在关闭 VS Code 时保留未保存的编辑器。如果设为 off,未保存内容不会被备份,Backups 文件夹通常也是空的。
复制 Backups 文件夹
关闭 VS Code。在文件资源管理器地址栏粘贴 %APPDATA%\Code\Backups,把整个文件夹复制到别处。每个子文件夹对应一个窗口,里面是 Untitled 编辑器和已修改文件的备份。
安全地读取备份文件
每个备份文件的第一行是原始路径或 untitled 名称,后面才是你写的内容。用任意文本编辑器打开副本并删掉第一行,或者交给下面的查找工具处理。
用查找工具收集
在 FileFix Ultimate 中打开“查找程序崩溃或未保存就关闭时丢失的文件”,点击“查找未保存的文件”。把“程序”筛选设为 Visual Studio Code。条目按原文件名或 Untitled 标签命名,点“复制所选项目”会保存去掉标题行的文本。
已保存的文件用本地历史记录
如果你把好的代码保存覆盖了,在 VS Code 中打开该文件,在资源管理器侧栏展开“时间线”,选择较早的本地历史记录条目,与当前版本对比后即可恢复。
Hot Exit 和本地历史记录不是一回事
Hot Exit 针对的是从未保存过的文本。当你退出 VS Code、关闭窗口或程序崩溃时,它会为每个有改动的编辑器写备份,并在下次启动时直接恢复,不询问是否保存。一旦你保存或放弃了编辑器中的修改,备份就会被删除,所以它只在有未保存修改期间存在。
本地历史记录针对的是已保存的文本。每次保存时,VS Code 可以在用户数据文件夹中保留上一版本的副本,通常位于 %APPDATA%\Code\User\History,并在时间线视图中列出。从未保存成文件的 Untitled 编辑器不在其中。
为什么标签有时回不来
备份与窗口的文件夹或工作区绑定。用别的文件夹或空窗口打开 VS Code 时,即使备份还在磁盘上,也什么都不会显示。设置同步、切换配置文件、运行 Insiders 而非稳定版、便携版安装也会使用不同的数据文件夹,例如 Insiders 通常把文件放在 Code - Insiders 文件夹中。
清空 AppData 的清理工具、连用户数据一起删除的重装、用“不保存”关闭编辑器,是备份真正消失的常见原因。在多次尝试重启之前,请先复制 Backups 文件夹。
如果代码在 Git 仓库中
如果项目使用 Git,未提交的修改不在 Git 中,但已提交或 stash 的内容可以从 Git 恢复。请首先查看源代码管理视图和 git stash list。如果删除的源文件从未提交过,剩下的办法就是对磁盘做已删除文件扫描。
无法恢复的情况
- files.hotExit 设为 off,未保存的编辑器从未写入磁盘。
- 用“不保存”关闭了编辑器,被删除的备份已被覆盖或被固态硬盘 TRIM 擦除。
- 清理工具或连设置一起删除的重装删掉了 VS Code 用户数据文件夹。
- 本地历史记录被关闭,或保留数量上限已删掉你需要的版本。
FileFix Ultimate 能帮什么
- 以只读方式查找 %APPDATA%\Code\Backups 中的 Hot Exit 备份,同时查找记事本、Notepad++ 和 Office 的恢复文件。
- 从每个备份中读取原始文件路径或 Untitled 名称,并据此建议文件名。
- 把去掉备份标题行的纯文本复制到你选择的文件夹。
- 如果备份已被删除,可用“已删除文件恢复”在 C 盘中查找,并保存到另一块磁盘。
- 个人使用免费且完全离线,源代码不会离开你的电脑。
FileFix Ultimate 个人使用免费、可离线使用,并且不会向你正在恢复的驱动器写入数据。工作或商业用途需为每台电脑购买一年期许可。运行前请检查签名。
常见问题
VS Code 把未保存的文件存在哪里?
标准安装通常在 %APPDATA%\Code\Backups,每个窗口一个子文件夹。Insiders 和便携版使用各自的数据文件夹,路径可能不同。
VS Code 崩溃后 Untitled 标签还在吗?
如果 files.hotExit 保持默认开启,通常还在。重新打开同一个窗口或工作区,Untitled 编辑器应当会回来。如果没有,请先复制 Backups 文件夹。
本地历史记录能找回 Untitled 文件吗?
不能。本地历史记录记录的是文件保存时的版本。从未保存过的 Untitled 编辑器只存在于 Hot Exit 备份中。
在 VS Code 中怎样找到文件以前保存的版本?
打开文件,在资源管理器侧栏展开“时间线”,选择本地历史记录条目。也可以在命令面板中搜索 Local History,查找多个文件的条目。