VSCode无传统备份功能,需组合启用files.autoSave(推荐onFocusChange)、files.hotExit(设为onExitAndWindowClose)及Git临时提交或Local History扩展来防丢。

VSCode 本身没有传统意义上的“备份”功能,但通过合理配置自动保存、文件恢复和外部工具联动,能极大降低代码丢失风险。关键不是找“备份开关”,而是组合启用 files.autoSave、files.hotExit 和工作区级恢复机制。
开启自动保存:选对触发时机比开不开更重要
VSCode 的 files.autoSave 有四种模式,直接设为 "onFocusChange" 或 "onWindowChange" 最实用——它在你切出编辑器或切换标签页时立刻写入磁盘,避免 Ctrl+S 忘记按导致的丢失。不推荐 "afterDelay"(默认 1000ms),延迟期间崩溃仍会丢内容;也别用 "off",除非你真在写超大日志文件。
操作路径:设置 → 搜索 files.autoSave → 下拉选择 onFocusChange。也可手动编辑 settings.json:
{
"files.autoSave": "onFocusChange"
}
确保崩溃后能恢复:别关掉 files.hotExit
这个配置决定 VSCode 关闭时是否保留未保存的更改。默认是 "onExit"(仅退出时保留),但若遇系统崩溃、断电或强制杀进程,必须依赖 files.hotExit + 本地恢复缓存才能找回。它的值必须是 "onExitAndWindowClose" 或 "onExit",绝不能设为 "off"。
注意:某些 Linux 发行版或远程开发环境可能禁用该功能,此时需检查 ~/.config/Code/Backups(或 Windows 的 %AppData%\Code\Backups)目录是否存在且可写。如果目录为空或权限被拒,恢复将失效。
补充防丢手段:用 Git 临时提交代替“备份”概念
VSCode 不生成版本化备份,但你可以把 Git 当轻量备份工具。开启 git.enableSmartCommit 并设为 true,再配合 git.autoRepositoryDetection,就能在任意文件修改后快速右键“Stage Changes”+ “Commit”。不需要 push,本地 commit 就是可回溯的快照。
更进一步,安装扩展如 Local History(by Zhang Heng),它会在 .history 文件夹里每 2 分钟自动记录一次文件快照,无需 Git 也能查历史版本。但它不替代 Git,只解决“手滑删错几行又没暂存”的场景。
容易忽略的陷阱:多根工作区 + 远程开发时恢复逻辑不同
在 WSL 或 SSH 远程连接中,files.hotExit 依赖远程端的 Backups 目录,而该目录可能被清理策略定期删除;多根工作区下,VSCode 只对当前激活的文件夹启用自动保存,其他根里的文件若没被打开过,不会被自动写入。这意味着你得确认每个子项目都单独打开了至少一个文件,或者改用 files.autoSave 的 "onWindowChange" 模式来兜底。
另外,files.autoSaveDelay(仅对 afterDelay 模式生效)在远程环境中常因网络延迟被放大,建议完全避开该模式。










