Syncing (View Source Code) is a VSCode extension, designed to synchronize all of your VSCode settings across multiple devices with your GitHub Gist.
Getting started or check out the examples.
Keep it simple & reliable!
Syncing will keep the consistency of your VSCode settings between your devices, it'll let you:
-
Upload VSCode Settings:
- Including your
User Settings,Keybindings,Extensions,LocalesandSnippets. - The
keybindingsofMacOSandnon-MacOSwill be synchronized separately, in case you have multiple devices of different operating systems. - Automatically create a new Gist to store your settings.
- Use an incremental algorithm to boost the synchronization.
- You can
exclude some VSCode User Settings and Extensionsfrom being uploaded, check out the VSCode User Settings for more details.
- Including your
-
Download VSCode Settings:
- Always overwrite local settings.
- Automatically
install, updateandremoveextensions. - You can download settings from
a public Gist, such as your friend's VSCode settings, check out here for more details. - You can
exclude some VSCode User Settings and Extensionsfrom being downloaded, check out the VSCode User Settings for more details.
Besides, you can set up a proxy to accelerate the synchronization. And of course, you can turn on the auto-sync to simplify the synchronization :).
You can type "upload", "download" (or "syncing") in VSCode Command Palette to access these commands:
-
Syncing: Upload SettingsUpload settings to GitHub Gist.
-
Syncing: Download SettingsDownload settings from GitHub Gist.
-
Syncing: Open Syncing SettingsSet your
GitHub Personal Access Token,Gist IDorHTTP Proxysettings.
The keybindings are unassigned by default, but you can easily turn them on by updating VSCode Keyboard Shortcuts:
-
For VSCode versions >= 1.11 (recommended):
-
For VSCode versions < 1.11, for example:
{ "key": "alt+cmd+u", "command": "syncing.uploadSettings" }, { "key": "alt+cmd+d", "command": "syncing.downloadSettings" }, { "key": "alt+cmd+s", "command": "syncing.openSettings" }
You can find the following Syncing Settings in your VSCode User Settings.
-
syncing.excludedExtensionsYou can configure glob patterns for excluding some
VSCode Extensionsfrom being synchronized.Note that the extensions not listed here will still be synchronized.
Take this for example:
"syncing.excludedExtensions" : [ "somepublisher.*", "nonoroazoro.syncing" ]
Note that the excluded
extension nameis actually theextension id(you can find it in theVSCode Extensions View), such as:Now the extension
nonoroazoro.syncing(i.e.,Syncing) and all the extensions of the authorsomepublisherwill no longer be synchronized. -
syncing.excludedSettingsYou can configure glob patterns for excluding some
VSCode User Settingsfrom being synchronized.Note that the settings not listed here will still be synchronized.
Take this for example:
"syncing.excludedSettings" : [ "editor.*", "workbench.colorTheme" ]
Now the
workbench.colorThemesetting and all the settings ofeditorwill no longer be synchronized. -
syncing.extensions.autoUpdateYou can configure this setting to let
Syncingautomatically update your extensions during the synchronization.This is
enabled by defaultbut you can turn it off in yourVSCode User Settings. -
syncing.pokaYokeThresholdDuring the synchronization,
Syncingwill check the changes between your local and remote settings, and display aconfirm dialogif the changes exceed this threshold.The
default valueof this setting is10, and you candisable this featureby setting to a numberless than or equal to zero(<= 0).Take this for example:
"syncing.pokaYokeThreshold" : 10
-
syncing.separateKeybindingsSynchronize the
keybindingsseparately for different operating systems.You may disable it since
VSCodehas introduced the Platform Specific Keybindings fromversion 1.27. But please make sure you've alreadymerged your keybindingsbefore disabling this setting.This is
enabled by defaultbut you can turn it off in yourVSCode User Settings.
You can set up a proxy to accelerate the synchronization. Here are the steps:
-
Type
"Syncing: Open Syncing Settings"(or just"opensync") inVSCode Command Paletteto openSyncing's own settings file (i.e.syncing.json). -
Change the
"http_proxy"setting, for example:"http_proxy": "http://127.0.0.1:1080"
Moreover, if the "http_proxy" is unset, Syncing will try to read the http_proxy and https_proxy environment variables as a fallback.
Please note that unlike the settings in VSCode User Settings,
Syncingwill not upload its own settings file because it contains your personal information.
You can now let Syncing auto-sync your settings. Here are the steps:
-
Type
"Syncing: Open Syncing Settings"(or just"opensync") inVSCode Command Paletteto openSyncing's own settings file (i.e.syncing.json). -
Enable the
"auto_sync"setting, for example:"auto_sync": true
-
Reload or reopen VSCode to take effect.
-
Get your own
GitHub Personal Access Token(3 steps).-
Login to your GitHub Personal Access Tokens page and click
Generate new token. -
Give your token a descriptive
name, checkgistand clickGenerate token. -
Copyandbackupyour token.
-
-
Sync your VSCode settings.
Syncingwill ask for necessary informationfor the first timeandsave for later use.-
Upload
-
Type
uploadinVSCode Command Palette. -
Enter your
GitHub Personal Access Token. -
Select or enter your
Gist ID.You can
leave it blankto create a newGistautomatically. -
Done!
-
After it's done, you can find the settings and the corresponding
Gist IDin your GitHub Gist. Also, you canEditandmake it publicto share your settings with others.
-
-
Download
-
-
How do I make this work with code-server?
Code-server follows the XDG spec to set config & data directories. When using their Docker image, you can set
XDG_DATA_HOME="/home/coder/.config/"to store everything files in the same directory. This enables vscode-syncing to easily pickup the right locations. Since it is also a recommended volume path, it ensures persistence of your changes.








