vs code点击“uninstall”仅删除注册表条目和启用状态,插件文件夹、settings.json配置、globalstorage及workspacestorage缓存均残留;须手动删除extensions目录下对应id文件夹、清理json配置项、清空缓存路径并彻底退出所有code进程。

点“Uninstall”只是删注册表,插件文件还在磁盘上
VSCode 界面点击 Uninstall 按钮后,插件确实从「已安装列表」里消失了,但它的代码文件夹仍完整保留在磁盘上。下次启动时,VSCode 仍会扫描 extensions 目录,尝试加载残留文件——轻则报 command 'xxx' not found 错误,重则触发自动更新或激活逻辑异常。
真正卸载必须手动删掉对应文件夹。别靠名字猜,右键插件 → Copy Extension ID(如 ms-python.python),再进磁盘路径搜索这个 ID,精准定位后整文件夹删除。
- Windows 路径:
%USERPROFILE%\.vscode\extensions\ - macOS 路径:
~/Library/Application Support/Code/Extensions/ - Linux 路径:
~/.vscode/extensions/
settings.json 里藏着配置,不清理会干扰新装同名插件
很多插件(比如 esbenp.prettier-vscode、hediet.vscode-drawio)会在全局 settings.json 里写入专属配置项,例如 "prettier.requireConfig" 或 "drawio.diagramsPath"。卸载后这些键值不会自动消失,重装同名插件时会被直接继承,可能引发格式错乱、路径失效等问题。
打开命令面板(Ctrl+Shift+P),运行 Preferences: Open Settings (JSON),搜索插件 ID 或关键词,手动删掉整行。别漏掉 keybindings.json 和工作区级的 .vscode/extensions.json ——后者会导致打开旧项目时仍弹出「推荐安装」提示。
globalStorage 和 workspaceStorage 里的缓存也得清
插件私有数据(如 API Token、历史对话、上次打开的图表状态)通常存在 globalStorage 目录下,即使插件文件删了,这些数据仍在。重装后插件会“复活”旧状态,看似干净实则埋雷。
对应路径:
- Windows:
%APPDATA%\Code\User\globalStorage - macOS:
~/Library/Application Support/Code/User/globalStorage - Linux:
~/.config/Code/User/globalStorage
进目录后,按插件 ID 搜索子文件夹(如 saoudrizwan.claude-dev),直接删掉整个匹配文件夹。同理,workspaceStorage(Windows 在 %APPDATA%\Code\User\workspaceStorage)里也可能存项目级缓存,可一并清理。
命令行 code --uninstall-extension 并不总可靠
code --uninstall-extension ms-python.python 这个命令本质是调用 UI 卸载流程,只对当前处于「已启用」或「已安装」状态的插件有效。如果插件早已被禁用但没删文件夹,它会静默失败,终端无报错,但磁盘文件纹丝不动。
更稳的方式是组合使用:
- 先用
code --list-extensions确认插件是否还在列表里 - 再执行卸载命令
- 最后进
extensions目录手动验证文件夹是否真没了
批量清理旧版本(VSCode 不自动删历史版)可用通配符:rm -rf ~/.vscode/extensions/ms-python.python-*,但务必确认前缀准确,避免误删其他插件。
最常被忽略的是:删完所有文件后,必须彻底退出 VSCode 所有进程(任务管理器里杀掉所有 Code.exe 和 Code Helper.exe),否则缓存和内存状态不会重置,重启后菜单项、图标甚至错误仍可能残留。











