VS Code verwijderen op de Mac zonder instellingen te verliezen
Visual Studio Code naar de prullenmand slepen verwijdert de editor en niets van je setup. Dat is bewust, gedocumenteerd, en de reden dat de meeste mensen VS Code precies zo terugvinden als ze hem achterlieten na een herinstallatie waarvan ze hoopten dat die iets zou repareren.
Verwijder je om schoon te beginnen, dan is de app het deel dat er niet toe doet.
Bepaal dus wat de volgende installatie moet onthouden. Visual Studio Code naar de prullenmand verplaatsen houdt de setup. De locaties met gebruikersstaat weghalen begint opnieuw, en dat is alleen nuttig nadat je Instellingen synchroniseren hebt gecontroleerd en alles hebt bewaard wat je niet opnieuw kunt maken.
Je setup staat buiten de app
De gids van VS Code voor een schone verwijdering houdt het verwijderen van de app en het verwijderen van gebruikersstaat apart. Op macOS staat de staat buiten de appbundel:
~/Library/Application Support/Code
~/.vscode-shared
~/.vscode
De eerste bevat instellingen, toetscombinaties, werkruimtestatus en gegevens die extensies schrijven.
De laatste bevat de extensies zelf. De huidige gids noemt ook .vscode-shared.
Die bestaat niet op elke Mac, maar hoort bij een volledige reset als hij er wel is.
De documentatie is expliciet over wat verwijderen doet: je komt terug in de staat van vóór je VS Code installeerde, en alle instellingen worden gereset. Dat is de juiste beschrijving van een fabrieksreset, en de verkeerde uitkomst als je alleen een vastgelopen venster wilde repareren.
Bepaal eerst welke uitkomst je wilt
Drie verschillende klussen heten verwijderen, en ze vragen om verschillende hoeveelheden verwijderen.
Opnieuw installeren om een kapotte build te repareren: haal alleen de app weg. Alles komt terug. Zat het probleem in je instellingen of een extensie, dan bereik je niets, en dat is de gebruikelijke uitkomst.
Beginnen met een schone editor: haal de app weg en de genoemde statuslocaties. Exporteer je instellingen eerst als je er iets van terug wilt.
Ruimte vrijmaken: haal geen van beide weg. De ruimte zit bijna altijd in caches per project en niet in de editor, en daar is een apart artikel voor.
Synchronisatie beslist voor je
Staat Instellingen synchroniseren aan en ben je aangemeld bij een GitHub- of Microsoft-account, dan staan je instellingen, toetscombinaties, fragmenten en de extensielijst in dat account. Dat verlaagt het risico van een reset, maar het is geen back-up van elk lokaal bestand dat een extensie schrijft.
Staat Instellingen synchroniseren uit, dan kunnen deze statuslocaties de enige kopie zijn. Een settings.json
die je twee jaar hebt bijgesteld, is een bestand dat je hebt geschreven, geen cache, en niets anders heeft een kopie.
Controleer het voordat je verwijdert. Het zit in het accountmenu onderaan de activiteitenbalk, en het kost langer om deze zin te lezen dan om te kijken.
Exporteer de extensielijst, ook als je alles verwijdert
code --list-extensions > ~/Desktop/vscode-extensions.txt
Dit werkt zolang VS Code nog geïnstalleerd is en maakt herbouwen een lus in plaats van
een geheugenact. Staat de opdracht code niet op je pad, dan installeert VS Code die vanuit het
opdrachtpalet onder Shell Command.
De opdrachtregeltool en de resten
De app weghalen laat de shellopdracht code wijzen naar een bundel die niet meer
bestaat, samen met de gebruikelijke caches, logbestanden en bewaarde appstatus. Die zijn
in elk geval wegwerpbaar.
Artefacten per project horen hier helemaal niet bij. Een map .vscode in een repository
hoort bij dat project en reist mee in versiebeheer. De editor verwijderen
mag die niet aanraken.
De grootte zien voordat je beslist
Deze statuslocaties groeien stil. Extension hosts cachen language servers, en een paar extensies bewaren indexen die in de gigabytes lopen. Dat is meestal het echte antwoord op waarom de voetafdruk van de editor groter is dan de editor.
Mole toont de bijbehorende statuslocaties met hun grootte naast de app, zodat het verschil tussen een extensiecache die je wilt opruimen en een instellingenmap die je wilt houden zichtbaar is voordat er iets beweegt. Verwijderingen komen in de prullenmand terecht, en dat is de juiste plek voor een map waarvan je een uur later kunt ontdekken dat je hem wilde houden.
Wat Instellingen synchroniseren meeneemt, en wat niet
Het neemt instellingen mee, toetscombinaties, gebruikersfragmenten, de extensielijst en een deel van de interface-staat. Meld je op een andere machine aan bij hetzelfde account en die komen vanzelf terug.
Het neemt geen status op werkruimteniveau mee, en ook niet de gegevens die extensies naar schijf schrijven. Een
.vscode/settings.json in een repository reist met die repository mee en is
niet de zaak van synchronisatie. Extensie-indexen, caches van language servers en aanmeldstatus
volgen ook niet, dus een opnieuw geïnstalleerde extensie kan nog steeds opnieuw ingesteld
moeten worden.
Het accountmenu onderaan de activiteitenbalk toont de huidige staat. Staat daar dat je bent aangemeld en een synchronisatietijd, dan kan de gesynchroniseerde subset na een reset worden teruggezet. Lokale extensiegegevens hebben nog steeds een eigen back-up nodig. Zonder synchronisatie bekijk je elke statuslocatie alsof het de enige kopie is.
Wat Mole voor deze app toont, en wat het laat staan, staat in VS Code verwijderen op de Mac.