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

我希望能够以某种方式将我的 VS 代码用户设置(File > Preferences > User Settings)同步到云中,这样我就可以轻松地在多个安装之间共享它们,就像在 Windows 10和 Visual Studio 中那样。

有没有支持这样做的方法?代码中的直接支持是很好的,但是如果能够将我的 setings.json 位置移动到 Dropbox 或 OneDrive 文件夹也是可以的。

I'm looking specifically for a way of doing this automatically and silently. Manually exporting/importing is too cumbersome and isn't what I'm looking for.


更新: 现在是 VS 代码的内置特性

54401 次浏览

用户设置

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

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

工作区设置

Add the .vscode folder of your workspace to the version control system (Git/SVN etc). When you checkout the code from the repository you will automatically get the VS Code workspace settings.

我已经开发了一个扩展,它可以跨多个实例同步所有 VisualStudio 代码设置。

主要特点

  1. 使用您的 GitHub 帐户令牌。
  2. 易于上传和下载,只需点击一下。
  3. 保存所有设置和代码段文件。
  4. Upload Key : Shift + Alt + u
  5. 下载键: Shift + Alt + d
  6. 键入 Sync 以查看所有同步选项

It Sync

  • 设置文件
  • 密钥绑定文件
  • 启动文件
  • Snippets Folder
  • 编码 分机

详细资料文件来源

设置同步博客文章

这里下载: VS 代码-设置同步-扩展

您可以在包含用户设置的目录中创建一个硬链接,将其链接到 Dropbox 或 OneDrive 等应用程序的同步目录。

例如,在窗口上,用户设置位于 %APPDATA%\Code\User中,因此您可以键入:

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

使用 VisualStudio 代码在计算机上实现同步。

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

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

to retrieve the synchronized settings.

我把我的 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')

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

Aha, you can try my VSCode extension: 同步.

希望你会喜欢


快速指南

  1. Install 同步:

  2. 拥有自己的 GitHub Personal Access Token:

    1. Login to your GitHub Settings page.

      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. VSCode Command Palette中输入 upload

      2. 输入 GitHub Personal Access Token

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

      4. 成交!

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

        settings and gist

    2. 下载 :

      1. VSCode Command Palette中输入 download

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

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

      4. 成交!

I did this on my Mac by copying VS Code's settings.json to my iCloud drive for automatic backup, and then creating a symbolic link.

  1. settings.json代码设置目录$HOME/Library/Application Support/Code/User/settings.json复制到备份位置
  2. 通过重命名为 settings-old.json来备份旧的 settings.json
  3. 在终端中,cd到 VS 代码设置 dir: cd ~/Library/Application\ Support/Code/User/
  4. 使用命令 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
  5. 检查是否可以在 VS Code 中打开用户首选项

要在不同的 Mac 上使用备份,只需重复步骤2-5。

我还为 接发做了这个..。

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

Another way of doing it would be to soft link your files, which can also be stored in a repository on GitHub. For example, on Mac OS let's say you have a directory called ~/dev/dotfiles/vscode. Let's say there are two files in there called settings.json and keybindings.json. You could soft link these files with:

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找到各自设置目录的路径

In v1.48:

预览功能

Preview features are not ready for release but are functional enough 我们欢迎您的早期反馈 development.

Settings Sync

设置同步现在可以在稳定版中预览。 请参阅 用户指南 查阅更多资料及常见问题。

产品中的特性现在也被称为 设置同步 其引用和设置被重命名为对齐。

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


在1.45版本中,您似乎可以通过 GitHub 登录到内置的设置同步,参见 https://github.com/microsoft/vscode/issues/95160#event-3266867554(支持 GitHub 在设置同步中登录)。还有 1.45版本发行说明


在1.43版本中,作为预览功能的是 < strong > 设置同步

设置同步

在过去的几个月里,我们一直致力于支持跨机器同步 VS 代码设置、扩展和键盘快捷键(流行的功能请求 #2743)。在这个里程碑,我们很高兴地宣布,这个功能是准备从我们的下一个 1.44.0-知情人发行版预览。现在,您可以在所有计算机上的所有 VS 代码安装中同步您的自定义。您还可以通过在新机器上进行个人定制来引导 VS 代码,而且只需要很少的工作量。下面的视频展示了这一点:

时支持检测设置和键绑定中的冲突 冲突显示使用 diff 编辑器与传入 (云)左边的变化和右边的局部变化。 您可以通过在右侧编辑器和 使用编辑器中提供的操作合并更改。

支援功能

当前设置、键盘快捷键、扩展和显示 Language are synchronized but we are planning to add more. You can 查看我们提议的列表 < a href = “ https://github.com/Microsoft/vscode/questions? q = is% 3Aopen + is% 3Aproblem + label% 3Atings-Sync + label% 3AFeature-request”rel = “ nofollow noReferrer”> 设置同步 特性 .

机器设置(具有机器或机器可覆盖的作用域)不是 synchronized by default. You can also add or remove settings you want 从设置编辑器或使用 sync.ignoredSettings.

默认情况下,每个平台的键盘快捷键是同步的 键盘快捷键是平台无关的,那么,你可以同步 通过禁用设置跨平台 sync.keybindingsPerPlatform.

所有内置和安装的扩展都与 它们的全局启用状态。您可以跳过同步 扩展,从扩展视图或使用设置 sync.ignoredExtensions.

可以在 日志(同步)输出中监视同步活动 所有本地自定义项都将备份最后30天(至少 10)在同步过程中,当它们被更改时,你就可以在磁盘上 可以使用命令 同步: 打开本地备份文件夹去 备份位置并保留旧的自定义项。

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

注意,正在工作的是 通过你的微软账户,而不是 github (直到 v1.45-参见顶部) :

设置同步使用 Microsoft 帐户存储 VS 代码自定义以进行同步,因此需要一个 请参考 < ahref = “ https://aka.ms/vscode-sets-Sync-help”rel = “ nofollow norefrer”> Settings Sync 文件 了解更多信息 information and help.

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


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

这最终是一个内置特性: 请参见 VisualStudio 代码中的设置同步