如何导出VSCode设置?


Answers:


165

Visual Studio Code有一个扩展,称为设置同步 https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync

它通过gist(GitHub的Gist)同步您的设置。它的工作原理与Atom.io扩展名settings-sync相同。


7
这真的是出口吗?我将导出导出工作流以生成一个文件或一组文件,其中包含某个目录中的设置-不依赖第三方服务和基础设置。
Éliette

1
当然可以。外部软件包不是必需的,但可以使您的软件包在更多VSC实例之间保持同步(
有时,

3
该扩展对我根本不起作用。当您尝试将设置导入到另一台计算机时,它只是显示“找不到错误”,我遵循了这封信的说明。如果决定使用此功能,请小心。
dcp

1
@dcp,这是由于无效的gist ID造成的,您可以打开问题以告知作者
Shan Khan

我可以在不运行旧版本的情况下复制设置,而只需要访问安装它的磁盘?
科斯坦诺斯岛

274

在撰写本文时,使用VSCode的当前版本(1.22.1),您可以在以下位置找到您的设置

  • ~/.config/Code/User 在Linux上(在我的情况下,是Ubuntu衍生版本)
  • C:\Users\username\AppData\Roaming\Code\User 在Windows 10上
  • ~/Library/Application Support/Code/User/在Mac OS X上(感谢Christophe De Troyer

文件是settings.jsonkeybindings.json。只需将它们复制到目标计算机即可。

您的扩展程序在

  • ~/.vscode/extensions 在Linux和Mac OS X上
  • C:\Users\username\.vscode\extensions 在Windows 10上(例如,基本上在同一地方)

或者,只需转到扩展,显示已安装的扩展,然后将其安装在目标安装中即可。对我来说,复制扩展程序工作得很好,但是它可能是特定于扩展程序的,尤其是在平台之间移动时,具体取决于扩展程序的功能。


2
%APPDATA%\ Code,%USERPROFILE%\。vscode \ extensions <-在Windows中使用它们,因此您不必在路径中来回键入用户名
Mahn

@zerohedge我希望工作区特定的设置在.workspace文件中,或者在.vscode/settings.json
MaartenFabré

44

为了后代,这篇文章提到

在最新版本的VSCode(2016年5月)中,现在可以在命令行中列出已安装的扩展

code --list-extensions

在Mac上,执行以下操作:

"/Applications/Visual Studio Code.app//Contents/Resources/app/bin/code" --list-extensions  

要安装使用:

--install-extension <ext> //see 'code --help'

36

与Big Rich给出的答案类似,您可以执行以下操作:

$ code --list-extensions | xargs -L 1 echo code --install-extension

这将列出扩展名以及安装命令,因此您可以将整个输出复制并粘贴到另一台计算机中:

例:

code --install-extension EditorConfig.EditorConfig
code --install-extension aaron-bond.better-comments
code --install-extension christian-kohler.npm-intellisense
code --install-extension christian-kohler.path-intellisense
code --install-extension CoenraadS.bracket-pair-colorizer

取自此处给出的答案

注意:确保事先已将VS代码添加到路径中。在Mac上,您可以执行以下操作:

  1. 启动VS代码
  2. 打开命令面板(⇧⌘P)并键入“ shell命令”以查找Shell命令:在PATH命令中安装“ code”命令。

4

您的用户设置位于中~/Library/Application\ Support/Code/User

如果你不关心同步,这是一个一次性的事情,你可以将文件复制keybindings.jsonsettings.json到相应的文件夹,你的新机器上。

您的扩展名位于该~/.vscode文件夹中。大多数扩展程序不使用任何本机绑定,并且复制后它们应该可以正常工作。您可以手动重新安装那些没有安装的软件。


4

我更喜欢用自己的方式在笔记本电脑之间同步所有VSCode扩展,使用.dotfiles和小脚本自动执行更新。每当我想安装所有扩展名时(通过brew),在VSCode中没有任何鼠标活动的情况下,这种方法都会对我有帮助。

因此,我只是将每个新添加的扩展名写入存储在我的文件夹中的.txt文件.dotfiles。之后,我拉另一台笔记本电脑上的master分支以获取具有所有扩展名的最新文件。

使用Big Rich之前编写的脚本并进行了另一处更改,我几乎可以完全自动同步所有扩展。

脚本

cat dart-extensions.txt | xargs -L 1 code --install-extension

此外,还有另一种方法可以使该过程自动化。在这里,您可以添加脚本,该脚本可以实时查看VSCode扩展,并且每次在code --list-extensions命令和.txt文件之间进行比较时,.dotfiles都可以轻松地更新文件并将其推送到远程仓库


1

我已经制作了一个Python脚本,用于将vsc设置导出到单个zip文件中。 https://gist.github.com/wonderbeyond/661c686b64cb0cabb77a43b49b16b26e

您可以将zip文件上传到外部存储设备。

$ vsc-settings.py export
Exporting vsc settings:
created a temporary dump dir /tmp/tmpf88wo142
generating extensions list
copying /home/wonder/.config/Code/User/settings.json
copying /home/wonder/.config/Code/User/keybindings.json
copying /home/wonder/.config/Code/User/projects.json
copying /home/wonder/.config/Code/User/snippets
  adding: snippets/ (stored 0%)
  adding: snippets/go.json (deflated 56%)
  adding: projects.json (deflated 67%)
  adding: extensions.txt (deflated 40%)
  adding: keybindings.json (deflated 81%)
  adding: settings.json (deflated 59%)
VSC settings exported into /home/wonder/vsc-settings-2019-02-25-171337.zip

$ unzip -l /home/wonder/vsc-settings-2019-02-25-171337.zip
Archive:  /home/wonder/vsc-settings-2019-02-25-171337.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  2019-02-25 17:13   snippets/
      942  2019-02-25 17:13   snippets/go.json
      519  2019-02-25 17:13   projects.json
      471  2019-02-25 17:13   extensions.txt
     2429  2019-02-25 17:13   keybindings.json
     2224  2019-02-25 17:13   settings.json
---------                     -------
     6585                     6 files

PS:您可以vsc-settings.py import为我实现子命令。



0

当前存在一个开放功能请求问题,该问题似乎在设计建议阶段。我将等待官方的支持。您可以订阅该问题并获得有关进度的通知。

https://github.com/microsoft/vscode/issues/2743#issuecomment-560116420


1
暂时内置于Insiders和standard中。 code.visualstudio.com/docs/editor/settings-sync
Mark

这只是“设置同步”的一个副本,它指向人们将其设置存储在Microsoft Azure而不是Github上。如果Microsoft仅做了一个简单的“将所有设置导出到单个文件”按钮,那就太好了。
罗伯特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.