VSCode 的缓存和历史主要位于 C:\Users\yourname\AppData\Roaming\Code(含 User、workspaceStorage、History)和 C:\Users\yourname\AppData\Local\Programs\Microsoft VS Code\Cache(Chromium/Electron 缓存),其中 workspaceStorage 存储各工作区索引快照,Cache 可安全删除但需彻底退出进程,Extensions 含本地模型易致体积膨胀,Crashpad 为崩溃日志可清空,真正有效的清理需命令行定位大户或迁移 user-data-dir 至非系统盘。

VSCode 的 Cache 和 History 都藏在哪
VSCode 本身不直接管理“缓存”这个概念,但它的体积膨胀几乎全来自三类地方:extensions(尤其是带本地模型或语言服务器的)、Cache(Chromium 渲染层和 Electron 进程缓存)、WorkspaceStorage 和 History(比如最近打开的文件路径、搜索记录、调试会话快照)。这些默认都堆在 C 盘用户目录下,路径类似:C:\Users\yourname\AppData\Roaming\Code 和 C:\Users\yourname\AppData\Local\Programs\Microsoft VS Code\Cache。
常见错误现象:删了 Code\Cache 文件夹后重启 VSCode,它立刻又生成几个 GB;或者清空了 Extensions,但 Code\User\workspaceStorage 里每个子目录动辄几百 MB——那其实是你打开过的每个工作区留下的索引快照,不是临时文件。
-
Cache目录可安全删除,但必须先完全退出 VSCode(包括系统托盘里的进程) -
Extensions下的已禁用扩展不会自动卸载,得手动删对应文件夹(名字是publisher.name格式) -
workspaceStorage不建议全删,按需清理:进该目录,看各子文件夹修改时间,挑半年没碰过的删 - 别碰
User\settings.json或keybindings.json,那是你的配置,不是缓存
怎么用命令行快速定位真正占空间的大户
图形界面看不出哪个子目录最肥,得靠命令行。打开 PowerShell(管理员非必需),进用户 AppData 路径:
cd "$env:APPDATA\Code"
Get-ChildItem -Directory | ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File | Measure-Object -Property Length -Sum).Sum
[PSCustomObject]@{Folder=$_.Name; SizeMB=[math]::Round($size/1MB, 2)}
} | Sort-Object SizeMB -Descending | Select-Object -First 5
这个脚本能列出 Code 目录下前五大子目录的大小。你会看到 Cache、Extensions、workspaceStorage 通常包揽前三。注意:Crashpad 目录偶尔也会涨到几 GB(崩溃日志堆积),可直接清空。
- 如果
Extensions占比异常高,检查是否装了ms-python.python(含 Pylance)、ms-vscode.cpptools(含 IntelliSense 索引)这类重型扩展 -
Cache里出现大量Code Cache子目录,说明 VSCode 启动频繁但未彻底退出,残留 Chromium 缓存 - PowerShell 默认隐藏
AppData,用ls -Force才能看见
VSCode 自带的清理入口其实很鸡肋
菜单里的 Developer: Clean Window 或设置里勾选“关闭时清除缓存”,基本无效——它们只影响当前窗口渲染状态,不碰磁盘文件。真正起作用的是两个冷门命令:
- 运行
Developer: Toggle Developer Tools,再在控制台输入require('electron').session.defaultSession.clearCache(),回车(仅清 Chromium 级缓存,对磁盘占用改善有限) - 更实用的是
Developer: Show Running Extensions,点开每个扩展的“详细信息”,看“Location”路径,再手动去文件系统删整个文件夹(尤其那些标着 “Pre-release” 或 “Insiders” 的测试版扩展) - 别信“清理历史”插件,它们多数只删
search.history这种几十 KB 的小文件,对几十 GB 无感
长期控制体积的关键动作
清理一次只能管几天,根本问题是 VSCode 默认把所有扩展数据、工作区索引、甚至远程 SSH 的本地代理都塞进 C 盘。要治本,得改两处硬编码路径:
- 启动 VSCode 时加参数迁移主目录:
code --user-data-dir="D:\VSCodeUserData",然后把原AppData\Roaming\Code\User整个复制过去,再用新路径启动一次,后续所有配置、扩展、历史就走 D 盘了 - 扩展安装位置不能直接改,但可以软链接:把
AppData\Local\Programs\Microsoft VS Code\resources\app\extensions剪切到 D 盘,再用mklink /J创建指向它的目录联结 - 禁用自动更新:设置里关掉
update.mode,避免每次更新都保留旧版本扩展副本(VSCode 更新机制默认不覆盖,而是并存)
最常被忽略的一点:WSL 连接、Dev Containers、Remote-SSH 这些功能会在 AppData\Local\Programs\Microsoft VS Code\bin 或 AppData\Roaming\Code\logs 下偷偷存镜像缓存和日志,它们不会出现在常规清理路径里,得单独搜 *wsl*、*container* 关键词定位。











