Jak wykonać kopię zapasową ustawień VS Code i listy zainstalowanych rozszerzeń?

75

Właśnie dwukrotnie przeszedłem proces instalacji VS Code. Pierwsza instalacja jest szybka i bezbolesna (podobnie jak sam edytor), ale musiałem pamiętać listę zainstalowanych rozszerzeń i instaluję nowe w świetnym tempie.

Dzięki Sublime Text po prostu skopiowałbym plik ustawień na inny komputer i mógłbym w ten sposób automatycznie zainstalować wszystkie zależności przepływu pracy, ale jakie jest podejście z VS Code?

Czy mogę po prostu wykonać kopię zapasową pliku „ustawień” JSON lub podobnego narzędzia, aby móc z łatwością odtworzyć moje środowisko pracy (wraz z rozszerzeniami)?

Astravagrant
źródło

Odpowiedzi:

60

Odpowiedziałem na to na głównej stronie StackOverflow - wkleiłem poniżej dla kontekstu

Muszę to zrobić sam kilka razy - zwłaszcza podczas instalacji na innym komputerze.

W zależności od platformy folder rozszerzeń znajduje się na jednej z następujących ścieżek:

  • Windows: %USERPROFILE%\.vscode\extensions
  • Prochowiec: ~/.vscode/extensions
  • Linux: ~/.vscode/extensions

VS Code szuka rozszerzeń w folderze rozszerzeń .vscode/extensions. W zależności od platformy znajduje się:

  • Windows %USERPROFILE%\.vscode\extensions
  • Prochowiec ~/.vscode/extensions
  • Linux ~/.vscode/extensions

To powinno pokazać listę rozszerzeń

Odniosłem również sukces, używając rozszerzenia Visual Studio Code Settings Sync Extension do synchronizacji ustawień z GitHub gist

EDYCJA: W najnowszej wersji VSCode (maj 2016 r.) Można teraz wyświetlić listę zainstalowanych rozszerzeń w wierszu polecenia

code --list-extensions
MarkP
źródło
Settings Syncrozszerzenie działało jak urok, właśnie wyeksportowałem moje ustawienia z OS X do Linux Mint.
vikas027,
7
Nie chcę synchronizować! Chcę wykonać kopię zapasową! Nie odpowiedziałeś poprawnie na pierwotne pytanie.
JesseNewman19,
10

Rozszerzenie Ustawienia synchronizacji powinno wystarczyć, choć UX jest tak-tak.

Synchronizuje twoje ustawienia z GitHub Gist w formacie JSON. Musisz utworzyć token GitHub. Sugeruję zapisanie kodu tokena w nazwie pliku tokena, ponieważ kiedy będziesz musiał ponownie pobrać swoje ustawienia później, jest mało prawdopodobne, abyś miał kod pod ręką (przynajmniej tak było w moim przypadku).

Brandon
źródło
Jeśli wiesz, że będziesz potrzebować tokena GitHub dla rozszerzenia Synchronizacja ustawień, możesz go pobrać z tokenklucza syncLocalSettings.jsonznajdującego się w profilu Code, w tym samym folderze co settings.json.
Rory O'Kane
3

Tak więc, gdy edycja nagłówka drzewa lub odpowiedź MarkP pokazała, że ​​możesz teraz wyświetlić listę wszystkich zainstalowanych rozszerzeń, więc sposobem na zainstalowanie tej listy rozszerzeń byłoby:

code --list-extensions >> vs_code_extensions_list.txt

Przenieś nowo utworzony plik na komputer, na którym chcesz zainstalować te rozszerzenia. Na tej maszynie:

cat vs_code_extensions_list.txt | xargs -n 1 code --install-extension

Który następnie przejdzie przez każde rozszerzenie w tym pliku i zainstaluje rozszerzenie.

Jeśli chcesz czystej instalacji (AKA usuń wszystkie istniejące rozszerzenia na tym komputerze), możesz uruchomić to przed zainstalowaniem nowych rozszerzeń (w przeciwnym razie usuniesz również te nowe rozszerzenia). UWAŻAJ, ponieważ spowoduje to usunięcie wszystkich rozszerzeń kodu VS:

code --list-extensions | xargs -n 1 code --uninstall-extension
NickTheSick
źródło
Próbowałem, otrzymałem następujący komunikat o błędzie: „xargs: Termin„ xargs ”nie jest rozpoznawany jako nazwa polecenia cmdlet, funkcji, pliku skryptu lub programu operacyjnego.” ?
Nicholas Petersen
1
@NicholasPetersen To dla Linuksa. W systemie Windows:get-content c:\exportedlist.txt | % { code --install-extension $_ }
Jason Clement
1

Oto lokalizacja ustawień VSCode:

Windows %APPDATA%\Code\User\settings.json
macOS $HOME/Library/Application Support/Code/User/settings.json
Linux $HOME/.config/Code/User/settings.json

Wygląda na to, że przechowuje tylko zmodyfikowane ustawienia, co jest naprawdę fajne (więc nie zapychasz się i nie psujesz w przyszłych wersjach).

Możesz także chcieć / snippets /, w tym samym folderze co settings.json.

I oczywiście możesz biegać code --list-extensions, jak już wspomniano w innych odpowiedziach.

Andrzej
źródło