重置或卸掉 VS Code,不必先丢掉整套配置
把 Visual Studio Code 拖进废纸篓只会卸掉编辑器,不会动任何配置,这是刻意设计、写进文档的行为,也解释了为什么许多人重装之后发现 VS Code 和离开时一模一样,而重装本是为了修好某个问题。
所以如果目的是从零开始,要处理的其实是应用程序之外的状态数据。
开始删除支持文件之前,先对照 VS Code 的现行官方卸载说明。如果厂商提供自己的卸载器或应用内命令,应先走那条路径,再处理明确属于它的残留。
配置放在应用程序之外
VS Code 把用户状态放在应用程序包之外:
~/Library/Application Support/Code
~/.vscode-shared
~/.vscode
第一个位置保存设置、快捷键、工作区状态以及扩展写入的数据,最后一个位置存放扩展本身。现行说明还列出了 .vscode-shared,它不一定存在于每台 Mac,但只要存在,就是完整重置的一部分。
文档写得很清楚,删掉它们等于回到安装 VS Code 之前的状态并重置全部设置,这正是出厂重置的正确定义,也是你只想修一个卡住的窗口时最不想要的结果。
先决定你想要哪种结果
被叫作卸载的其实是三种不同目标,需要删掉的量也不同。
重装以修复损坏的程序:只删应用程序,原来的配置会保留,若问题出在设置或扩展上,单靠重装不会解决。
从干净的编辑器重新开始:删掉应用程序和清单中的状态位置,若还想留住部分设置,先导出再删。
只想腾空间:先比较编辑器、扩展和各项目缓存的体积,不要一口气删除这些状态位置,项目缓存的处理另有专文讨论。
Settings Sync 会替你拍板
若已打开 Settings Sync 并登录 GitHub 或 Microsoft 账号,设置、快捷键、代码片段与扩展列表都存在该账号里,这会降低重置风险,但不会备份扩展写在本机的所有文件。
若 Settings Sync 是关的,这些状态位置可能就是唯一记录,亲手调整的 settings.json 不是缓存,先确认别处有没有备份。
删之前先在活动栏底部的账号菜单里检查同步状态。
即使全删,也先导出扩展列表
code --list-extensions > ~/Desktop/vscode-extensions.txt
VS Code 仍在安装时就能跑这条命令,重建时照着清单循环执行,而不是靠记忆硬凑,若 code 命令不在路径里,可在命令面板里用 Shell Command 安装。
命令行工具与残留文件
只卸应用程序时,code 这条 shell 命令可能仍指向已不存在的程序包,确认目标后可移除失效链接。缓存、日志与已保存的状态也要分别检查,先留住排障记录和未保存的工作,不把整个状态目录当成缓存。
各项目里的产物与此无关,仓库内的 .vscode 文件夹属于该项目,会随版本控制一起走,卸编辑器不该碰它。
决定前先看清体积
这些状态位置会悄悄变大,扩展宿主会缓存语言服务,少数扩展的索引能到数 GB,「编辑器占的空间比编辑器本身还大」多半就出在这里。
Mole 会把相关状态目录的路径和体积与应用并排显示,方便核对,但缓存与设置要结合内容区分,不能只看大小。普通删除会移入废纸篓,在清空前可以取回,重要设置仍需提前备份。
Settings Sync 同步了什么,没同步什么
同步的是设置、快捷键、用户代码片段、扩展列表以及一部分界面状态,换台机器登录同一个账号,这些会自己回来。
不同步的是工作区级别的东西,以及扩展自己写在磁盘上的数据,项目里的 .vscode/settings.json 跟着仓库走,不归它管,扩展的本地索引、语言服务器缓存、登录态这些也不会跟过去,装回扩展之后可能还要重新配一次。
在活动栏最下方的账号菜单里能看到当前状态,若同步已打开,同步范围内的数据可在重置后恢复;扩展的本机数据仍需单独备份。若没有同步,请把每个状态位置都当成唯一一份来检查。
Mole 核对这个应用时会列出什么、又会留下什么,写在 在 Mac 上卸载 VS Code。