[英]Is there any way to sync my Visual Studio Code settings between instances?
我开发了一个扩展,可以跨多个实例同步所有 Visual Studio Code 设置。
主要特点
它同步
详细文档来源
在此处下载: VS Code - 设置同步 - 扩展
您可以从包含用户设置的目录到您的应用程序(例如 Dropbox 或 OneDrive)的同步目录建立硬链接。
例如,在 Windows 上,用户设置位于%APPDATA%\\Code\\User
,因此您可以键入:
mklink /H /JX:\\Your\\Sync\\Dir %APPDATA%\\Code\\User
在您的计算机上使用 Visual Studio Code 实现同步。
然后,在另一台计算机上,您可以删除%APPDATA%\\Code\\User
文件夹,然后键入:
mklink /H /J %APPDATA%\\Code\\User X:\\Your\\Sync\\Dir
以检索同步设置。
啊哈,你可以试试我的 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
。
上传:
在VSCode Command Palette
中VSCode Command Palette
upload
。
输入您的GitHub Personal Access Token
。
输入您的Gist ID
(或leave it blank
以自动创建)。
完毕!
上传后,您可以在您的GitHub Gist 中找到您的设置和相应的Gist ID
。
下载:
在VSCode Command Palette
中VSCode Command Palette
download
。
输入您的GitHub Personal Access Token
(如果您想从公共 Gist 下载,则将leave it blank
)
输入您的Gist ID
(或public Gist ID
)。
完毕!
在 v1.48 中:
预览功能
预览功能尚未准备好发布,但功能足以使用。 我们欢迎您在开发过程中尽早提供反馈。
设置同步
设置同步现在可以在稳定版本中预览 🎉。 有关更多信息和常见问题解答,请参阅用户指南。
该功能现在在产品中也称为设置同步。 它的所有参考和设置都被重命名为对齐。
另请参阅https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_48.md#settings-sync 上的“手动合并”和 Insiders 和 Stable 之间的同步
在 v1.45 中,您似乎可以通过 github 登录到内置设置同步,请参阅https://github.com/microsoft/vscode/issues/95160#event-3266867554 (在设置同步中支持 GitHub 登录)。 和v1.45 发行说明。
在 v1.43 中作为预览功能(因此仅在 Insiders' Build 中)是settings 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 - 见顶部):
Settings Sync 使用 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
我通过将 VS Code 的settings.json
复制到我的 iCloud 驱动器进行自动备份,然后创建一个符号链接,在我的 Mac 上做到了这一点。
settings.json
从VS 代码设置目录$HOME/Library/Application Support/Code/User/settings.json
复制到您的备份位置settings-old.json
来备份旧的settings.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
另一种方法是软链接您的文件,这些文件也可以存储在 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找到相应设置目录的路径
我将我的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 工作区设置。
这最终是一个内置功能:请参阅Visual Studio Code 中的设置同步。
使用工作区设置而不是用户设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.