¿Cómo hago una copia de seguridad de mi configuración de VS Code y mi lista de extensiones instaladas?

75

Acabo de pasar por el proceso de instalación de VS Code dos veces. La instalación inicial es rápida e indolora (como lo es el editor en sí), pero he tenido que recordar la lista de extensiones que instalé y estoy instalando nuevas de manera excelente.

Con Sublime Text, simplemente copiaría un archivo de configuración a otra PC y podría instalar automáticamente cualquier dependencia de flujo de trabajo de esa manera, pero ¿cuál es el enfoque con VS Code?

¿Puedo hacer una copia de seguridad de un archivo de 'configuración' JSON o similar para poder recrear fácilmente mi entorno de trabajo (completo con extensiones)?

Astravagante
fuente

Respuestas:

60

He enviado una respuesta para esto en el sitio principal de StackOverflow , pegado a continuación para el contexto

Necesito hacer esto algunas veces, especialmente cuando lo instalo en otra máquina.

Dependiendo de su plataforma, su carpeta de extensiones se encuentra en una de las siguientes rutas:

  • Ventanas: %USERPROFILE%\.vscode\extensions
  • Mac: ~/.vscode/extensions
  • Linux: ~/.vscode/extensions

VS Code busca extensiones en su carpeta de extensiones .vscode/extensions. Dependiendo de su plataforma se ubica:

  • Ventanas %USERPROFILE%\.vscode\extensions
  • Mac ~/.vscode/extensions
  • Linux ~/.vscode/extensions

Eso debería mostrarle una lista de las extensiones

También he tenido éxito al usar la Extensión de sincronización de configuración de código de Visual Studio para sincronizar la configuración con GitHub gist

EDITAR: en la última versión de VSCode (mayo de 2016) ahora es posible enumerar la extensión instalada en la línea de comando

code --list-extensions
MarkP
fuente
Settings SyncLa extensión funcionó de maravilla, solo exporté mi configuración de OS X a Linux Mint.
vikas027
77
¡No quiero sincronizar! ¡Quiero hacer una copia de seguridad! No respondiste correctamente la pregunta original.
JesseNewman19
10

La extensión de sincronización de configuración debería ser suficiente, aunque la experiencia de usuario es regular.

Sincroniza tu configuración con un GitHub Gist en formato JSON. Tendrás que crear un token GitHub. Sugiero guardar el código del token en el nombre del archivo del token, ya que cuando necesite descargar su configuración nuevamente más tarde, es poco probable que tenga el código a mano (al menos, ese fue mi caso).

Brandon
fuente
Si sabe que necesitará su token GitHub para la extensión de sincronización de configuración, puede obtenerlo de la tokenclave syncLocalSettings.jsonque se encuentra en su perfil de código, en la misma carpeta que settings.json.
Rory O'Kane
3

Entonces, como mostró la edición de Treehead o la respuesta de MarkP, ahora puede enumerar todas las extensiones instaladas, por lo que la forma de instalar esa lista de extensiones sería:

code --list-extensions >> vs_code_extensions_list.txt

Transfiera el archivo recién creado a la máquina en la que desea instalar esas extensiones. En esa máquina usted:

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

Que luego pasará por cada extensión en ese archivo e instalará la extensión.

Si desea una instalación limpia (también conocido como eliminar todas las extensiones existentes en esa máquina), puede ejecutar esto antes de instalar las nuevas extensiones (de lo contrario, también eliminará esas extensiones nuevas). TENGA CUIDADO ya que esto eliminará todas las extensiones en el Código VS:

code --list-extensions | xargs -n 1 code --uninstall-extension
NickTheSick
fuente
Intenté, recibí este mensaje de error: "xargs: El término 'xargs' no se reconoce como el nombre de un cmdlet, función, archivo de script o programa operable". ?
Nicholas Petersen
1
@NicholasPetersen Eso es para Linux. En windows:get-content c:\exportedlist.txt | % { code --install-extension $_ }
Jason Clement
1

Aquí está la ubicación de la configuración de VSCode:

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

Parece que solo está almacenando configuraciones modificadas , lo cual es realmente agradable (por lo que no se aturde ni fastidia con versiones futuras).

También puede querer / snippets /, en la misma carpeta que settings.json.

Y, por supuesto, puedes correr code --list-extensions, como las otras respuestas ya mencionan.

Andrés
fuente