开启真正有效的自动保存需设 files.autoSave 为 onFocusChange,且新建文件须先手动保存一次;VS Code 无传统备份文件,防丢唯一可靠方式是及时 Git 提交。

VS Code 默认不自动保存文件,关机或崩溃时未手动保存的修改会直接丢失;所谓“备份”功能也并不存在,所谓「自动备份」其实是靠文件系统快照或 Git 历史实现的——VS Code 本身不生成 .backup 或 ~ 文件。
如何开启真正有效的自动保存
VS Code 的 files.autoSave 控制的是编辑器是否在切换焦点、失焦或定时触发保存,不是“实时写入磁盘”的保险丝。它只对已保存过的文件(即已有路径的文件)生效;新建的 Untitled-1 文件必须先执行一次 File > Save(或 Ctrl+S),否则自动保存完全不启动。
-
files.autoSave推荐设为onFocusChange:切出编辑器窗口(比如点到浏览器)就立即保存,兼顾安全与性能 - 避免设为
afterDelay:默认延迟 1000ms,但若在这期间崩溃,仍会丢改 - 不要依赖
files.autoSaveDelay调小数值来“更实时”——它不能突破 Node.js fs.write 的异步延迟和 OS 缓存机制
为什么你找不到 .backup 文件?
VS Code 不像 Vim 或 Sublime Text 那样生成 filename.py~ 或 .filename.py.swp 类型的备份文件。它的「恢复上次会话」能力来自 workspaces.json 和 Backups 文件夹(路径类似 ~/Library/Application Support/Code/Backups/ 或 %APPDATA%\Code\Backups\),但这些是内存快照,不是可读源码,且默认 5 分钟才刷一次、重启后可能被清理。
- 该目录下文件名是哈希值,无法对应原文件名,不能当备份用
- 一旦禁用
files.hotExit(比如设置为off),崩溃后连这个快照都不会保留 - 手动清空
Backups目录不会报错,但下次崩溃就彻底无救
防止代码丢失的唯一可靠路径
真正的防丢不是靠编辑器,而是靠版本控制节奏。VS Code 对 Git 的集成只是 UI 层,关键在你的操作习惯:
- 每次完成一个逻辑单元(比如修完一个 bug、加完一个函数),就执行一次
git add -u && git commit -m "xxx",别等“写完一整个模块” - 启用
git.autofetch并搭配git.statusBar.colorize,让状态栏随时显示分支+变更数,形成视觉提示 - 把
git.ignoreLimitWarning设为false,避免大仓库里漏掉未跟踪文件 - 慎用
git clean -fd:VS Code 的临时文件(如.vscode/tasks.json)可能被误删,而它不会进 Git 历史
最常被忽略的一点:VS Code 的「自动保存」和「Git 提交」之间没有因果关系。哪怕你每秒都保存,没 git commit 就等于没备份。硬盘损坏、误删整个项目文件夹、重装系统——这些场景下,只有远程 Git 仓库里的 commit 是唯一可信的副本。










