我希望能够以某种方式将我的VS Code用户设置(“文件”>“首选项”>“用户设置”)同步到云中,以便在Windows 10和Visual Studio中的多个安装之间轻松共享它们。
有支持的方法吗?直接在Code中提供支持会很棒,但否则可以将我的settings.json位置移动到Dropbox或OneDrive文件夹中也可以。
我正在寻找一种自动且无声地执行此操作的方法。手动导出/导入太麻烦了,这不是我想要的。
更新:这里有一个功能要求。如果您想要此功能,请给我一个赞许。
我希望能够以某种方式将我的VS Code用户设置(“文件”>“首选项”>“用户设置”)同步到云中,以便在Windows 10和Visual Studio中的多个安装之间轻松共享它们。
有支持的方法吗?直接在Code中提供支持会很棒,但否则可以将我的settings.json位置移动到Dropbox或OneDrive文件夹中也可以。
我正在寻找一种自动且无声地执行此操作的方法。手动导出/导入太麻烦了,这不是我想要的。
更新:这里有一个功能要求。如果您想要此功能,请给我一个赞许。
Answers:
我开发了一个扩展程序,该扩展程序将在多个实例之间同步所有Visual Studio代码设置。
主要特点
它同步
详细文档来源
在此处下载:VS代码-设置同步-扩展名
您可以从包含用户设置的目录到应用程序的同步目录(例如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
检索同步的设置。
%APPDATA%\Code\User
,使用mklink /H /J %APPDATA%\Code\User X:\Your\Sync\Dir
"Local NTFS volumes are required to complete the operation."
啊哈,你可以试试我的VSCode扩展:正在同步。
希望你会喜欢。:)
安装同步:
拥有自己的GitHub Personal Access Token
:
登录到您的GitHub Settings
页面。
选择Personal access tokens
选项卡,然后单击确定Generate new token
。
选择gist
并单击Generate token
。
复制并备份您的令牌。
同步您的设置:
Syncing
会询问必要的信息for the first time
和save for later use
。
上载:
键入upload
在VSCode Command Palette
。
输入您的GitHub Personal Access Token
。
输入您的Gist ID
(或leave it blank
自动创建)。
做完了!
上传后,您可以Gist ID
在GitHub Gist中找到您的设置和相应的设置。
资料下载:
键入download
在VSCode Command Palette
。
输入您的GitHub Personal Access Token
(或leave it blank
如果您想从公共Gist下载)
输入您的Gist ID
(或public Gist ID
)。
做完了!
Syncing: Download Settings
2倍才能下载扩展。没什么大不了的,只是抬头。感谢您的杀手级工具!
在v1.45中,您似乎可以通过github登录到内置的“设置同步”,请参阅https://github.com/microsoft/vscode/issues/95160#event-3266867554(在设置同步中支持GitHub登录) )。以及v1.45发行说明。
在v1.43中,预览功能(因此仅在Insiders's Build中)是设置sync。参见https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_43.md#settings-sync
设置同步
最近几个月,我们一直在努力支持跨计算机同步VS Code设置,扩展名和键盘快捷键(流行功能请求#2743)。在这个里程碑中,我们很高兴地宣布,此功能已准备好在我们的下一个1.44.0版本的内部发布程序中进行预览。现在,您可以在所有计算机上的所有VS Code安装中同步自定义设置。您还可以轻松地在新机器上使用个人自定义引导VS Code。以下视频演示了这一点:
支持在同步时检测设置和键绑定中的冲突。使用差异编辑器显示冲突,左侧的传入(云)更改和右侧的本地更改。您可以通过在右侧编辑器中进行编辑来解决冲突,并使用编辑器中提供的操作合并更改。
支持的功能
当前,设置,键盘快捷键,扩展名和显示语言已同步,但我们计划添加更多功能。您可以查看建议的设置同步功能列表。
默认情况下,机器设置(具有机器或机器可覆盖范围的机器)不同步。您还可以从设置编辑器或使用设置向此列表添加或删除所需的设置
sync.ignoredSettings
。默认情况下,键盘快捷方式是按平台同步的。如果您的键盘快捷键与平台无关,则可以通过禁用设置在各个平台之间同步它们
sync.keybindingsPerPlatform
。所有内置和已安装的扩展都与其全局启用状态同步。您可以从扩展程序视图或使用设置来跳过同步扩展程序
sync.ignoredExtensions
。设置同步活动可以在日志(同步)输出视图中进行监视。在同步过程中进行更改时,所有本地自定义项都会在磁盘中备份最近30天(至少10天)。您可以使用命令同步:打开本地备份文件夹转到备份位置并保留旧的自定义设置。
(以及发行说明链接中的一些gif)
请注意,这是通过您的Microsoft帐户而不是github(直到v1.45-参见顶部)进行的:
设置同步使用Microsoft帐户存储您的VS Code定制以进行同步,因此您将需要一个帐户来使用它。有关更多信息和帮助,请参阅“ 设置同步”文档。
另请参阅https://github.com/microsoft/vscode-docs/blob/vnext/docs/editor/settings-sync.md,了解有关设置的更多信息settings sync
。
还有指向设置同步的v1.44信息的链接:https : //github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_44.md#settings-sync
我在Mac上通过将VS Code复制settings.json
到我的iCloud驱动器以进行自动备份,然后创建了符号链接来做到这一点。
settings.json
从VS代码设置目录 复制$HOME/Library/Application Support/Code/User/settings.json
到备份位置settings.json
通过重命名到旧版本settings-old.json
cd
对VS代码设置目录:cd ~/Library/Application\ Support/Code/User/
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
要在其他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
mklink
。您可以使用DropBox,OneDrive或其他云服务代替iCloud驱动器
我将我放置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')
用户设置
当前在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工作区设置。
做到这一点的另一种方法是软链接文件,这些文件也可以存储在GitHub上的存储库中。例如,在Mac OS上,假设您有一个名为的目录~/dev/dotfiles/vscode
。假设其中有两个文件,分别为settings.json
和keybindings.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找到相应设置目录的路径。
最终,这是一个内置功能:请参见Visual Studio Code中的“设置同步”。
注意:从2020年5月的1.46版开始,同步当前处于预览状态。
使用工作区设置而不是用户设置。