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