VSCode本地缓存分三类:Cache/CachedData(HTTP响应与扩展元数据)、Extensions(插件本体)、vscode-cpptools(C/C++ IntelliSense专用),路径因系统和类型而异,需按类精准清理,否则无效或引发功能异常。

VSCode本地缓存分三类,路径完全不同
别只盯着 Cache 文件夹——VSCode 的“缓存”其实是多个独立目录共同构成的,各自职责不同、位置分散、清理策略也不同。不区分类型直接删,要么白忙活,要么导致插件列表空白或 IntelliSense 失效。
-
Cache和CachedData:HTTP 响应与扩展元数据快照,位于用户数据目录下(不是安装目录) -
Extensions:已安装插件本体,Windows 默认在C:\Users\[用户名]\.vscode\extensions,不是AppData\Roaming\Code下 -
vscode-cpptools(含ipch):C/C++ 扩展专用 IntelliSense 缓存,路径在%LOCALAPPDATA%\Microsoft\vscode-cpptools,和主用户数据目录无关
各系统缓存路径必须按类型查准
同一类缓存在不同系统路径写法差异大,抄错一个字符就进错目录。尤其注意 macOS 上 Caches 和 Application Support 是两个平行目录,不能混为一谈。
Windows:
– Cache / CachedData: %USERPROFILE%\AppData\Roaming\Code\Cache 与 %USERPROFILE%\AppData\Roaming\Code\CachedData
– Extensions: C:\Users\[用户名]\.vscode\extensions
– vscode-cpptools: %LOCALAPPDATA%\Microsoft\vscode-cpptools
macOS:
– Cache / CachedData: ~/Library/Caches/com.microsoft.VSCode 与 ~/Library/Application Support/Code/CachedData
– Extensions: ~/.vscode/extensions
– vscode-cpptools: ~/Library/Caches/vscode-cpptools
Linux:
– Cache / CachedData: ~/.config/Code/Cache 与 ~/.config/Code/CachedData
– Extensions: ~/.vscode/extensions
– vscode-cpptools: $XDG_CACHE_HOME/vscode-cpptools(未设则 fallback 到 ~/.cache/vscode-cpptools)
为什么删了 Cache 还是卡在“加载中”
只清 Cache 目录,CachedData 里压缩过的扩展快照(含版本号、截图 URL、分类标签)还在,VSCode 会优先读它并显示过期信息;反过来只清 CachedData,Cache 里的 HTTP 响应(比如 CDN 图片、JSON 接口体)残留,可能让 UI 卡住不动。
- 两个必须一起删,缺一不可
- 删前确认所有
Code和Electron进程已退出(Windows 用taskkill /f /im Code.exe,macOS/Linux 用killall -9 Code) - 删完首次打开 Extensions 视图变慢是重建行为,不是失败
真正占空间的往往不是 Cache,而是这三个地方
很多人以为清了 Cache 就能腾出几十 GB,结果发现没变化——因为 VSCode 体积膨胀主力根本不在那儿。
-
workspaceStorage:每个打开过的工作区都会生成一个子目录,存索引快照,动辄几百 MB,路径在%APPDATA%\Code\workspaceStorage(Windows)或~/.config/Code/workspaceStorage(Linux) -
vscode-cpptools/ipch:C/C++ 项目 IntelliSense 缓存,单个.ipch文件可达 1–2 GB,且不会自动清理 -
Extensions下带本地模型的插件:比如 GitHub Copilot、TabNine、某些 LSP 服务端,解压后体积翻倍,且更新时不覆盖旧版
最稳妥的方式是用命令行定位大户,比如 Windows PowerShell 中执行: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
路径多、类型杂、进程锁紧——这才是 VSCode 缓存难搞的真正原因。别信“一键清理脚本”,先分清你要动的是哪一层。











