重置或卸掉 VS Code,不必先丢掉整套配置
把 Visual Studio Code 拖进废纸篓只会卸掉编辑器,不会动任何配置,这是刻意设计、写进文档的行为,也解释了为什么许多人重装之后发现 VS Code 和离开时一模一样,而重装本是为了修好某个问题。
所以如果目的是从零开始,要处理的其实是应用程序之外的那两个目录。
配置装在两个目录里
VS Code 把用户状态放在应用程序包之外:
~/Library/Application Support/Code
~/.vscode
前者保存设置、快捷键、工作区状态以及扩展写入的数据,后者存放扩展本身。
文档写得很清楚,删掉它们等于回到安装 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 跟着仓库走,不归它管,扩展的本地索引、语言服务器缓存、登录态这些也不会跟过去,装回扩展之后可能还要重新配一次。
在活动栏最下方的账号菜单里能看到当前状态,写着已登录并显示同步时间,就说明那两个目录是可以删的,显示未登录,它们就是唯一一份。