有没有办法在实例之间同步我的Visual Studio代码设置?

时间:2015-10-28 13:18:30

标签: visual-studio-code settings

我希望能够以某种方式将我的VS Code用户设置(文件>偏好设置>用户设置)同步到云端,以便我可以在多个安装之间轻松共享它们,如在Windows 10和Visual Studio中

是否有支持这种方式? Code中的直接支持会很棒,但是否则可以将我的settings.json位置移动到Dropbox或OneDrive文件夹也可以。

我正在寻找一种自动而无声地执行此操作的方法。手动导出/导入过于繁琐,并不是我所寻找的。

更新feature request for this here。如果你想要这个功能,请竖起大拇指。

10 个答案:

答案 0 :(得分:108)

我开发了一个扩展程序,可以跨多个实例同步所有Visual Studio代码设置。

主要功能

  1. 使用您的github帐户令牌。
  2. 只需点击一下即可轻松上传和下载。
  3. 保存所有设置和代码段文件。
  4. 上传密钥:Shift + Alt + u
  5. 下载密钥:Shift + Alt + d
  6. 键入同步以便查看所有同步选项
  7. 同步

    1. 设置文件
    2. 密钥绑定文件
    3. 启动文件
    4. Snippets文件夹
    5. VSCode 扩展程序
    6. 详细文档来源

      VSCode Sync ReadMe

      在此处下载:VS Code Settings Sync

答案 1 :(得分:16)

您可以从包含用户设置的目录到Dropbox或OneDrive等应用程序的同步目录建立硬链接。

例如,在Windows上,用户设置位于%APPDATA%\Code\User,因此您可以输入:

mklink /H /J X:\Your\Sync\Dir %APPDATA%\Code\User

在您的计算机上使用Visual Studio Code实现同步。

然后,在另一台计算机上,您可以删除%APPDATA%\Code\User文件夹,然后键入:

mklink /H /J %APPDATA%\Code\User X:\Your\Sync\Dir

检索同步设置。

答案 2 :(得分:11)

在v1.48中:

预览功能

预览功能尚未发布,但功能足够 使用。我们欢迎您在下线期间提早提供反馈 开发。

设置同步

设置同步现在可以在稳定版本?中进行预览。 请参阅user guide 有关更多信息和常见问题解答。

产品中也将

功能称为设置同步。所有的 其参考和设置已重命名为对齐。

另请参阅“手动合并”以及https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_48.md#settings-sync内幕和稳定之间的同步


在v1.45中,您似乎可以通过github登录到内置设置同步,请参见https://github.com/microsoft/vscode/issues/95160#event-3266867554(在设置同步中支持GitHub登录)。还有v1.45 Release Notes


在v1.43中,作为预览功能(因此仅在Insiders's Build中)是 设置同步 。参见https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_43.md#settings-sync

设置同步

最近几个月我们一直在努力支持跨计算机同步VS Code设置,扩展名和键盘快捷键(流行功能请求#2743)。在这个里程碑中,我们很高兴地宣布,此功能已准备好在我们的下一个1.44.0-insider版本中进行预览。现在,您可以在所有计算机上的所有VS Code安装中同步自定义设置。您还可以轻松地在新机器上使用个人自定义引导VS Code。以下视频演示了这一点:

支持同时检测设置和键绑定中的冲突 正在同步。使用差异编辑器显示冲突,并显示 (云)在左侧更改,在本地更改在右侧。 您可以通过在右侧编辑器中进行编辑来解决冲突,然后 使用编辑器中提供的操作合并更改。

支持的功能

当前设置,键盘快捷键,扩展名和显示 语言是同步的,但我们计划添加更多语言。您可以 查看我们建议的Setting Sync features列表。

机器设置(具有计算机或计算机可覆盖的范围)不是 默认情况下已同步。您还可以添加或删除所需的设置 从设置编辑器或使用设置进入此列表 sync.ignoredSettings

默认情况下,每个平台都会同步键盘快捷方式。如果你的 键盘快捷键与平台无关,那么您可以同步 通过禁用设置跨平台 sync.keybindingsPerPlatform

所有内置和安装的扩展程序与 他们的全球支持状态。您可以跳过同步 扩展程序,从扩展程序视图或使用设置 sync.ignoredExtensions

可以在日志(同步)输出中监控

“设置同步”活动 视图。备份所有本地自定义项至少30天(至少 10)在磁盘上在同步过程中进行任何更改。您 可以使用命令同步:打开本地备份文件夹转到 备份位置并保留您的旧自定义设置。

(以及发行说明链接中的一些gif)

请注意,该操作通过您的Microsoft帐户有效,而不是github(直到v1.45-参见顶部):

“设置同步”使用Microsoft帐户存储您的VS Code定制以进行同步,因此您将需要一个 帐户来使用它。有关更多信息,请参考Settings Sync documentation 信息和帮助。

有关如何设置settings sync的更多信息,请参见https://github.com/microsoft/vscode-docs/blob/vnext/docs/editor/settings-sync.md


以及指向设置同步v1.44信息的链接:https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_44.md#settings-sync

答案 3 :(得分:10)

啊哈,您可以尝试我的VSCode扩展程序:Syncing

希望你会喜欢它。 :)

快速指南

  1. 安装Syncing

  2. 获取您自己的GitHub Personal Access Token

    1. 登录您的GitHub Settings页。

      login to settings page

    2. 选择Personal access tokens标签,然后点击Generate new token

      generate new token

    3. 选择gist并点击Generate token

      allow gist

    4. 复制并备份您的令牌。

      copy and backup token

  3. 同步您的设置:

    Syncing 会要求提供必要的信息for the first timesave for later use

    1. 上传

      1. upload中输入VSCode Command Palette

      2. 输入您的GitHub Personal Access Token

      3. 输入您的Gist ID(或leave it blank自动创建)。

      4. 完成!

      5. 上传后,您可以在GitHub Gist中找到自己的设置和相应的Gist ID

        settings and gist

    2. 下载

      1. download中输入VSCode Command Palette

      2. 输入您的GitHub Personal Access Token(或leave it blank,如果您想从公共要点下载)

      3. 输入您的Gist ID(或public Gist ID)。

      4. 完成!

答案 4 :(得分:4)

我在Mac上通过将VS Code的settings.json复制到我的iCloud驱动器进行自动备份,然后创建符号链接来完成此操作。

  1. settings.jsonVS code settings directory $HOME/Library/Application Support/Code/User/settings.json复制到您的备份位置
  2. 通过重命名为settings.json
  3. 备份旧版settings-old.json
  4. 在终端中,cd到VS代码设置目录:cd ~/Library/Application\ Support/Code/User/
  5. 使用命令ln -sf path/to/backup/settings.json settings.json为备份文件创建符号链接。由于我将自己备份到iCloud并将文件重命名为vscode.settings.json,因此我的命令如下所示:ln -sf ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode.settings.json settings.json
  6. 检查您是否可以在VS Code
  7. 中打开用户首选项

    要在其他Mac上使用备份,请重复步骤2-5。

    我也为extensions ...

    做了这个
    cd ~/.vscode/
    mkdir ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode/
    cp -a extensions ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode
    mv extensions extensions-old
    ln -sf ~/Library/Mobile\ Documents/com~apple~CloudDocs/vscode/extensions extensions
    

答案 5 :(得分:3)

用户设置

目前,Visual Studio Code中没有可用的自动同步用户设置。 在Windows上,用户设置位于%APPDATA%\Code\User\settings.json。您可以在OneDrive或Dropbox上保存该文件的副本,并将其在所有计算机上移动到用户设置文件夹。但是每次更改配置时,这仍然包括每台机器上的手动步骤。

您可以在此处建议自动同步设置:https://visualstudio.uservoice.com/forums/293070-visual-studio-code

工作区设置

将工作区的.vscode文件夹添加到版本控制系统(Git / SVN等)。当您从存储库中签出代码时,您将自动获得VS Code工作区设置。

答案 6 :(得分:3)

我将settings.json放在我与git同步的配置文件中(虽然Dropbox也可以使用)并使用Python脚本将其符号链接到每个平台的正确位置,以便从设置菜单同步更新它穿过我的机器。创建符号链接需要Windows上的管理员权限。

import os
import platform

# Find the settings file in the same directory as this script
SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
VS_SETTINGS_SRC_PATH = os.path.join(SCRIPT_DIR, 'settings.json')

# https://code.visualstudio.com/docs/getstarted/settings#_settings-file-locations
if platform.system() == 'Windows':
    VS_SETTINGS_DST_PATH = os.path.expandvars(r"%APPDATA%\Code\User\settings.json")
elif platform.system() == "Darwin":
    VS_SETTINGS_DST_PATH = os.path.expandvars(r"$HOME/Library/Application Support/Code/User/settings.json")
elif platform.system() == "Linux":
    raise NotImplementedError()
else:
    raise NotImplementedError()

# On Windows, there might be a symlink pointing to a different file
# Always remove symlinks
if os.path.islink(VS_SETTINGS_DST_PATH):
    os.remove(VS_SETTINGS_DST_PATH)

choice = input('symlink %r -> %r ? (y/n) ' % (VS_SETTINGS_SRC_PATH, VS_SETTINGS_DST_PATH))
if choice == 'y':
    os.symlink(VS_SETTINGS_SRC_PATH, VS_SETTINGS_DST_PATH)
    print('Done')
else:
    print('aborted')

答案 7 :(得分:3)

这最终是一个内置功能:请参见Settings Sync in Visual Studio Code

答案 8 :(得分:2)

另一种方法是软链接文件,也可以存储在GitHub上的存储库中。例如,在Mac OS上,假设您有一个名为~/dev/dotfiles/vscode的目录。假设有两个名为settings.jsonkeybindings.json的文件。您可以使用以下方法软链接这些文件:

ln -s ~/dev/dotfiles/vscode/keybindings.json ~/Library/Application\ Support/Code/User/keybindings.json
ln -s ~/dev/dotfiles/vscode/settings.json ~/Library/Application\ Support/Code/User/settings.json

如果您使用的是Windows或Linux,可以在https://code.visualstudio.com/docs/getstarted/settings#_settings-file-locations找到相应设置目录的路径

答案 9 :(得分:-4)

使用工作区设置而不是用户设置。