Как сделать резервную копию настроек VS Code и списка установленных расширений?

75

Я только что прошел процесс установки VS Code дважды. Начальная установка быстрая и безболезненная (как и сам редактор), но мне пришлось запомнить список установленных расширений, и я устанавливаю новые с большой скоростью.

С Sublime Text я просто скопировал бы файл настроек на другой ПК и мог бы автоматически установить любые зависимости рабочего процесса таким образом, но каков подход с VS Code?

Могу ли я просто создать резервную копию файла настроек JSON или аналогичного файла, чтобы можно было легко заново создать свою рабочую среду (в комплекте с расширениями)?

Astravagrant
источник

Ответы:

60

Я отправил ответ для этого на главном сайте StackOverflow - вставил ниже для контекста

Я должен сделать это сам несколько раз - особенно при установке на другую машину.

В зависимости от вашей платформы папка расширений находится по одному из следующих путей:

  • Окна: %USERPROFILE%\.vscode\extensions
  • Mac: ~/.vscode/extensions
  • Linux: ~/.vscode/extensions

VS Code ищет расширения в вашей папке расширений .vscode/extensions. В зависимости от вашей платформы он расположен:

  • Windows %USERPROFILE%\.vscode\extensions
  • макинтош ~/.vscode/extensions
  • Linux ~/.vscode/extensions

Это должно показать вам список расширений

Я также успешно использовал расширение синхронизации параметров кода Visual Studio для синхронизации настроек с GitHub Gist

РЕДАКТИРОВАТЬ: В последнем выпуске VSCode (май 2016 г.) теперь можно перечислить установленное расширение в командной строке

code --list-extensions
MarkP
источник
Settings Syncрасширение работало как шарм, просто экспортировал мои настройки из OS X в Linux Mint.
vikas027
7
Я не хочу синхронизировать! Я хочу сделать резервную копию! Вы не правильно ответили на исходный вопрос.
JesseNewman19
10

Расширение « Синхронизация настроек» должно сработать, хотя UX так себе.

Он синхронизирует ваши настройки с GitHub Gist в формате JSON. Вам нужно будет создать токен GitHub. Я предлагаю сохранить код токена в имени файла токена, так как, когда вам понадобится загрузить настройки позже, маловероятно, что вам пригодится код (по крайней мере, так и было).

Brandon
источник
Если вы знаете, что вам нужен токен GitHub для расширения «Синхронизация настроек», его можно получить по tokenключу, указанному syncLocalSettings.jsonв вашем профиле кода, в той же папке, что и settings.json.
Рори О'Кейн
3

Таким образом, как показало редактирование Treehead или ответ MarkP, теперь вы можете перечислить все установленные расширения, поэтому способ установить этот список расширений:

code --list-extensions >> vs_code_extensions_list.txt

Перенесите вновь созданный файл на компьютер, на который вы хотите установить эти расширения. На этой машине вы бы:

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

Который затем будет проходить через каждое расширение в этом файле и устанавливать расширение.

Если вам нужна чистая установка (AKA удаляет все существующие расширения на этом компьютере), вы можете запустить ее перед установкой новых расширений (в противном случае вы также удалите эти новые расширения). БУДЬТЕ ОСТОРОЖНЫ, так как это удалит все расширения в VS Code:

code --list-extensions | xargs -n 1 code --uninstall-extension
NickTheSick
источник
Попытался получить это сообщение об ошибке: «xargs: термин« xargs »не распознается как имя командлета, функции, файла сценария или работоспособной программы». ?
Николай Петерсен
1
@NicholasPetersen Это для Linux. На окнах:get-content c:\exportedlist.txt | % { code --install-extension $_ }
Джейсон Клемент
1

Вот расположение настроек VSCode:

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

Похоже, что он хранит только измененные настройки, что очень хорошо (так что вы не забьетесь и не испортите будущие версии).

Вы также можете захотеть / snippets /, в той же папке, что и settings.json.

И, конечно, вы можете бежать code --list-extensions, как уже упоминалось в других ответах.

Андрей
источник