vscode无内置自动备份功能,所谓“.bak文件”是误解;防丢必须local history插件(存保存前快照于.history/)与git提交双层兜底,且需配准files.autosave为onfocuschange、volar接管模式及路径别名对齐。

VSCode 没有自动备份功能,所谓“每次保存生成 .bak 文件”是误解;真正的代码防丢必须靠 Local History 插件 + Git 提交双层兜底,缺一不可。
Local History 插件:唯一能实现“每次保存前快照”的轻量方案
它不依赖 Git,也不上传云端,在项目根目录下自动生成 .history/ 文件夹,每个快照带精确时间戳,右键文件 → Local History: Show History 即可对比恢复。
- 只监控「当前已打开」的文件——没在编辑器里打开的
.js或.vue不会记录 - 默认保留 5 天快照,想调长就改设置
local-history.maxFileHistory(单位是天) -
.history文件夹不能被.gitignore误删,否则所有快照永久丢失 - 不兼容符号链接(symlink)目标文件——如果项目用软链指向
src,.history不会跟踪真实路径
files.autoSave 配置:不是备份,但决定快照能否被触发
Local History 的快照时机严格绑定于 VSCode 的保存动作,而 files.autoSave 控制这个动作何时发生。设错模式会导致快照漏存或延迟。
- 推荐设为
"onFocusChange":切出当前文件(比如点到终端、切换 tab)立即保存 → 快照即时生成 - 别用
"afterDelay"(默认 1000ms):延迟期间崩溃,修改就丢了,且无法触发快照 - 新建的
Untitled-1文件不会被自动保存,必须先Ctrl+S指定路径,否则.history/根本不创建 - 若用了 Prettier 或 ESLint 自动修复,要关掉
editor.formatOnSave,否则格式化失败会中断保存流程,导致快照缺失
Volar Take Over Mode:Vue 项目里快照和智能提示都依赖它
装了 Volar 却没有类型推导、defineProps 显示为 any、右键跳转失效?90% 是因为没开接管模式——这直接导致 .vue 文件无法被 Local History 正确识别和快照。
- 必须禁用
Vetur,两者共存会让语言服务罢工,.vue文件变成纯文本,快照虽存但无意义 - 按
Ctrl+Shift+P输入Volar: Switch to Take Over Mode执行,确认volar.enableTakeOverMode为true - Vue 3.3+ 的
defineProps宏或ref()解构需额外开启Vue > Experimental: Vue Macros,并重启整个 VSCode 窗口 - 路径别名(如
@/components)跳转失败?检查tsconfig.json的compilerOptions.baseUrl和paths是否与vite.config.ts中的resolve.alias对齐——不对齐会导致 Volar 无法解析,快照也失去上下文
最常被忽略的一点:Local History 记录的是“保存前”的内容,不是“修改后”的状态;如果你在保存前执行了错误的全局替换或误删,快照里存的就是那个错误版本——它救不了逻辑错误,只防手抖覆盖。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











