重設或移除 VS Code,同時守住你的設定
把 Visual Studio Code 拖進垃圾桶,只會移除編輯器,不會帶走你的任何設定。這是刻意的、有文件記載的行為,也是為什麼多數人在重裝之後,發現 VS Code 仍和離開時一模一樣,儘管他們原本指望重裝能修好什麼。
若你解除安裝是為了從頭開始,應用程式本身反而是最不重要的那一塊。
你的設定存在兩個資料夾
VS Code 把使用者狀態放在應用程式套件之外:
~/Library/Application Support/Code
~/.vscode
前者保存設定、按鍵綁定、工作區狀態,以及擴充功能寫入的後端資料。後者則放著擴充功能本身。
文件對移除它們的結果寫得很清楚:你會回到安裝 VS Code 之前的狀態,並重設所有設定。這正是出廠重設的正確描述,卻是你只想修卡住的視窗時最不想要的結果。
先決定你想要的結果
三種不同的工作都會被叫做「解除安裝」,但需要刪除的量並不相同。
為了修好損壞的建置而重裝:只移除應用程式。一切都會回來。若問題出在設定或擴充功能,這等於什麼都沒做,而這也是最常見的結果。
想要乾淨的編輯器:移除應用程式與兩個目錄。若還想要回任何設定,先匯出。
只是要騰空間:兩者都不要動。空間幾乎總是在各專案的快取裡,而不是在編輯器本身,這部分另有專文說明。
同步功能替你做決定
若 Settings Sync 已開啟,並登入 GitHub 或 Microsoft 帳號,你的設定、按鍵綁定、程式碼片段與擴充功能清單都存在該帳號中。此時刪除兩個目錄是安全的:在全新安裝上登入即可還原。
若 Settings Sync 關閉,這兩個目錄就是唯一紀錄。一份調了兩年的 settings.json 是你寫出來的檔案,不是快取,別處也沒有副本。
刪除前先確認。它在活動列底部的帳號選單裡,看一眼比讀完這句話還快。
即使全部刪除,也先匯出擴充功能清單
code --list-extensions > ~/Desktop/vscode-extensions.txt
這在 VS Code 仍安裝時可用,能把重建變成迴圈,而不是憑記憶拼湊。若路徑上沒有 code 指令,可在命令選擇區的 Shell Command 項目裡,由 VS Code 安裝它。
命令列工具與殘留項目
移除應用程式後,code shell 指令仍會指向已不存在的套件,連同常見的快取、日誌與已儲存的應用程式狀態。這些在任何情況下都可以丟。
各專案的產物完全不在此列。存放庫內的 .vscode 資料夾屬於該專案,並隨版本控制一起走;移除編輯器不該動到它。
決定前先查看大小
這兩個狀態目錄會安靜地長大。擴充功能主機快取語言伺服器,有些擴充功能的索引可到數 GB,這通常才是編輯器佔用空間遠大於編輯器本身的真正原因。
Mole 會連同應用程式一併顯示這兩個目錄及其大小,所以在動手前,就能看出哪些是值得清掉的擴充功能快取,哪些是該留下的設定目錄。移除會進垃圾桶,而那正是你一小時後可能發現其實還想要的目錄該去的地方。
Settings Sync 會同步什麼,不會同步什麼
它會同步設定、鍵盤快捷鍵、使用者程式碼片段、擴充功能清單,以及部分介面狀態。在另一台電腦登入同一帳號後,這些內容會自行回來。
它不會同步工作區層級的狀態,也不會同步擴充功能寫入磁碟的資料。儲存庫內的 .vscode/settings.json 會跟著該儲存庫走,與它無關;擴充功能索引、語言伺服器快取與登入狀態也不會跟著過來,因此重新安裝的擴充功能可能仍需再設定一次。
活動列底部的帳號選單會顯示目前狀態。若顯示已登入並標出同步時間,那兩個資料夾可以安全刪除。若顯示未登入,它們就是唯一的副本。