VSCode没有“本地缓存文件保存期限”配置项;其Backups和Local History均不支持按天数或小时数设置自动清理,而是依赖会话状态、磁盘空间及事件触发清理。

VSCode 没有“本地缓存文件保存期限”这个可配置项。它不提供类似 files.cacheTTL 或 backup.expireAfterDays 这样的设置来控制缓存文件的自动清理时间。
VSCode 的本地缓存不是按“期限”管理,而是按“空间+会话+事件”触发清理
所谓“本地缓存”,主要指两类东西:Backups(崩溃恢复快照)和 Local History(编辑历史记录),它们的生命周期不由用户设定天数或小时数决定:
-
Backups目录(路径如~/.config/Code/Backups/或%APPDATA%\Code\Backups\)只在 VSCode 正常退出时保留;异常崩溃后,下次启动可能恢复,但不会长期驻留——它没有过期机制,而是靠每次启动时的哈希比对和磁盘空间压力触发清理 -
Local History是第三方扩展(如xyz.local-history)的功能,原生 VSCode 不带此功能;该扩展默认保留最多 50 条记录、最多 30 天,但这个“30 天”是硬编码逻辑,无法通过 settings.json 修改 - 系统级临时文件(如
.vscode/.tmp/)由 Node.js 底层 fs 模块管理,VSCode 不干预其存活时间
能手动干预的只有 Local History 扩展的保留条目数
如果你装了 Local History 扩展,它提供有限的自定义能力:
- 打开命令面板(
Ctrl+Shift+P),运行Preferences: Open Settings (JSON) - 添加如下字段(仅影响该扩展生成的历史记录数量,不影响时间):
{"local-history.maxFileHistory": 100} - 注意:
maxFileHistory控制的是**单个文件最多存多少个历史版本**,不是“保留几天”;扩展内部仍用固定时间窗口(约 30 天)做兜底,但这个窗口不可配 - 删掉扩展配置或设为
0不会禁用历史,只会让扩展退回到默认值(50 条)
真正影响“缓存是否还在”的其实是 hotExit 和备份路径权限
很多用户以为“缓存消失了”是因为过了某期限,实际更可能是以下原因导致快照根本没写成或被静默丢弃:
-
files.hotExit设为false:VSCode 崩溃后连最基础的恢复快照都不会生成 - 备份目录无写入权限(尤其 WSL/SSH 场景下
Backups/目录属主错乱) - 磁盘空间不足时,VSCode 会直接跳过写入
Backups,不报错也不提示 - 你清空过
Backups/目录——它不会自动重建,必须等下一次正常退出才重新开始积累
真正容易被忽略的是:VSCode 的“缓存”本质是故障恢复辅助手段,不是备份系统。依赖它防丢,不如把 git add -A && git commit -m "wip" 变成肌肉记忆。











