Skip to content
⚡️ VSCode Extension - Sync all of your VSCode settings across multiple devices.
TypeScript JavaScript
Branch: master
Clone or download
Latest commit c20b579 Dec 10, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github
.vscode add eslint and typescript-eslint Apr 29, 2019
docs
resources
scripts
src
tests/utils add ut May 10, 2019
.eslintignore ignore dist Aug 16, 2019
.eslintrc add tsconfig.eslint.json Aug 16, 2019
.gitignore
.huskyrc format Mar 12, 2019
.lintstagedrc add .lintstagedrc Apr 29, 2019
.vscodeignore ignore files Aug 16, 2019
CHANGELOG.md bump version - 3.0.13 Dec 10, 2019
LICENSE add license 996ICU Apr 2, 2019
LICENSE.996ICU add license 996ICU Apr 2, 2019
LICENSE.MIT
README.md
README.zh-CN.md
package.json
package.nls.json
package.nls.zh-cn.json add locales May 9, 2019
tsconfig.eslint.json
tsconfig.json
yarn.lock rollback fs-extra to 7.0.1 Dec 10, 2019

README.md

Syncing

Version Installs Downloads Ratings License: MIT License: 996ICU

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!

Breaking Changes

  • From version 3.0.0 onwards:

    1. Supports auto-sync (finally...), here's a brief guide:

      1. Disclaimer, by enabling auto-sync, you may unintentionally overwrite your settings (see the discussion here), make sure you know what you're doing before you continue!

      2. It's highly recommended that you perform a Download Settings (which will set a baseline) before the following steps.

      3. Open Syncing Settings (Don't known how to open?) and enable the auto-sync like the followings:

        "auto_sync": true
      4. Reload or reopen your VSCode and enjoy!

      BTW, don't forget to fill in the correct Github Personal Access Token and Gist ID, otherwise auto-sync will not work.

Features

Syncing will keep the consistency of your VSCode settings between your devices, it'll let you:

  1. 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.
  2. 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'll have a progress indicator during the synchronization :).

Commands

You can type "upload", "download" (or "syncing") in VSCode Command Palette to access these commands:

  1. Syncing: Upload Settings

    Upload settings to GitHub Gist.

  2. Syncing: Download Settings

    Download settings from GitHub Gist.

  3. 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:

  1. For VSCode versions >= 1.11 (recommended):

    keyboard shortcuts

  2. 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.

  1. 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:

    exclude extensions

    Now the extension nonoroazoro.syncing (i.e., Syncing) and all the extensions of the author somepublisher will no longer be synchronized.

  2. 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.

  3. 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.

  4. 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
  5. 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:

  1. Type "Syncing: Open Syncing Settings" (or just "opensync") in VSCode Command Palette to open Syncing's own settings file (i.e. syncing.json).

  2. 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:

  1. Type "Syncing: Open Syncing Settings" (or just "opensync") in VSCode Command Palette to open Syncing's own settings file (i.e. syncing.json).

  2. Enable the "auto_sync" setting, for example:

    "auto_sync": true
  3. Reload or reopen VSCode to take effect.

Getting Started

  1. Get your own GitHub Personal Access Token (3 steps).

    1. Login to your GitHub Personal Access Tokens page and click Generate new token.

      generate new token

    2. Give your token a descriptive name, check gist and click Generate token.

      allow gist

    3. Copy and backup your token.

      copy and backup token

  2. Sync your VSCode settings.

    Syncing will ask for necessary information for the first time and save for later use.

    1. Upload

      1. Type upload in VSCode Command Palette.

        upload settings

      2. Enter your GitHub Personal Access Token.

      3. Select or enter your Gist ID.

        You can leave it blank to create a new Gist automatically.

      4. Done!

      5. 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.

    2. Download

      1. Type download in VSCode Command Palette.

        download settings

      2. 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.

      3. Select or enter your Gist ID or a public Gist ID.

      4. Done!

Examples

  1. Upload:

    upload example

  2. Download:

    download example

You can’t perform that action at this time.