Syncing
English | 中文
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!
Features
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
, Locales
and Snippets
.
- The
keybindings
of MacOS
and non-MacOS
will 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 Extensions
from being uploaded, check out the VSCode User Settings for more details.
Download VSCode Settings:
- Always overwrite local settings.
- Automatically
install, update
and remove
extensions.
- 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 Extensions
from 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 :).
Commands
You can type "upload"
, "download"
(or "syncing"
) in VSCode Command Palette
to access these commands:
Syncing: Upload Settings
Upload settings to GitHub Gist.
Syncing: Download Settings
Download settings from GitHub Gist.
Syncing: Open Syncing Settings
Set your GitHub Personal Access Token
, Gist ID
or HTTP Proxy
settings.
Keybindings
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"
}
VSCode User Settings
You can find the following Syncing Settings
in your VSCode User Settings
.
syncing.excludedExtensions
You can configure glob patterns for excluding some VSCode Extensions
from 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 name
is actually the extension id
(you can find it in the VSCode Extensions View
), such as:
Now the extension nonoroazoro.syncing
(i.e., Syncing
) and all the extensions of the author somepublisher
will no longer be synchronized.
syncing.excludedSettings
You can configure glob patterns for excluding some VSCode User Settings
from 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.colorTheme
setting and all the settings of editor
will no longer be synchronized.
syncing.extensions.autoUpdate
You can configure this setting to let Syncing
automatically update your extensions during the synchronization.
This is enabled by default
but you can turn it off in your VSCode User Settings
.
syncing.pokaYokeThreshold
During the synchronization, Syncing
will check the changes between your local and remote settings, and display a confirm dialog
if the changes exceed this threshold.
The default value
of this setting is 10
, and you can disable this feature
by setting to a number less than or equal to zero
(<= 0
).
Take this for example:
"syncing.pokaYokeThreshold" : 10
syncing.separateKeybindings
Synchronize the keybindings
separately for different operating systems.
You may disable it since VSCode
has introduced the Platform Specific Keybindings from version 1.27
. But please make sure you've already merged your keybindings
before disabling this setting.
This is enabled by default
but you can turn it off in your VSCode User Settings
.
Proxy Settings
You can set up a proxy to accelerate the synchronization. Here are the steps:
Type "Syncing: Open Syncing Settings"
(or just "opensync"
) in VSCode Command Palette
to open Syncing
'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, Syncing
will not upload its own settings file because it contains your personal information.
Auto-sync Settings
You can now let Syncing auto-sync your settings. Here are the steps:
Type "Syncing: Open Syncing Settings"
(or just "opensync"
) in VSCode Command Palette
to open Syncing
'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.
Getting Started
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
, check gist
and click Generate token
.
Copy
and backup
your token.
Sync your VSCode settings.
Syncing
will ask for necessary information for the first time
and save for later use
.
Upload
Type upload
in VSCode Command Palette
.
Enter your GitHub Personal Access Token
.
Select or enter your Gist ID
.
You can leave it blank
to create a new Gist
automatically.
Done!
After it's done, you can find the settings and the corresponding Gist ID
in your GitHub Gist. Also, you can Edit
and make it public
to share your settings with others.
Download
Type download
in VSCode Command Palette
.
Enter your GitHub Personal Access Token
.
You can leave it blank
if you want to download from a public Gist
, such as your friend's VSCode settings.
Select or enter your Gist ID
or a public Gist ID
.
Done!
Examples
Upload:
Download:
Frequently Asked Questions
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.