他にも同内容の記事いくつもあったけど自分用にメモ。
Visual Studio Code(以下 VS Code)の設定(エディタ設定や拡張機能等)を複数のマシンで同期させる。
同期は VS Code の Settings Sync 拡張機能を用い GitHub Gist を介してアップロード/ダウンロードが行われる。(なので要 GitHub アカウント)
環境:Windows 10 + Visual Studio Code(1.26.1) + Settings Sync(3.0.0 – 3.1.0)
INDEX
VS Code サイドバー拡張機能より「Settings Sync」を検索しインストール。
有効化のため再読み込み。
2. アップロード(初回はセットアップが実行される)
以下ショートカット、またはコマンドパレット実行時に VS Code の設定が Gist へアップロードされる。
初回実行時は GitHub の Personal Access Tokens が開くので token を生成し Settings Sync の設定を行っていく。
ショートカット
Shift + Alt + U
コマンドパレット(Ctrl + Shift + P)
> Sync Update / Upload Settings
Generate new token クリック。
Token description に任意の説明文を入力(今回はドキュメントに沿って code-settings-sync とした)。
Secret scopes > gist をチェックし Generate token ボタンをクリック。
(repo と user も必要という記事もあったが gist のみでいけた)
token が生成されるので控えておく。
VS Code 側で Enter GitHub Personal Access Token と token の入力を求められるので先程生成した token をペースト Enter。
設定が完了し VS Code の設定が Gist にアップロードされた旨の通知、及びログが出力される。
Gist に追加されていることが確認され、ひとまず設定及びアップロード完了。
3. ダウンロード(未設定マシンではセットアップが実行される)
以下ショートカット、またはコマンドパレット実行時、2. アップロード の項で token を登録した VS Code であればそのまま Gist から設定がダウンロードされ VS Code に反映される。
別のマシンの場合セットアップが行われていないため上記で生成した token 及び Gist id の入力が必要となる。
ショートカット
Shift + Alt + D
コマンドパレット(Ctrl + Shift + P)
> Sync Download Settings
控えておいた token を登録。
続いて Gist id の入力を求められる。
Gist id は Gist > VS Code Settings 個別ページの URL に記載されているのでコピーして VS Code に登録する。
Gist から設定がダウンロードされ VS Code に反映される。
拡張をたくさんある場合それらのインストールである程度時間が掛かるかな。
以上で複数マシン間で VS Code の設定変更時にアップロード(Shift + Alt + U) / ダウンロード(Shift + Alt + D)を行う事で同期を行えるようになった。
その他の機能として
Toggle Auto Download :VS Code 起動時に Gist から自動的に設定をダウンロード(デフォルト無効)
Toggle Auto-Upload on change :設定を変更する度に自動的に Gist にアップロード(デフォルト無効)
等があるのでドキュメント参照。
また設定を誤るとアップロード / ダウンロード時にエラーとなり同期が行われいのでその際は以下より再設定を。
4. エラー発生時の再設定方法
token 生成時の設定ミス、VS Code へ誤った token を登録してしまうとアップロード時(Shift + Alt + U)以下のようなエラーが通知される。
token 生成の際に gist にチェックをし忘れたまま生成
Sync : Invalid Gist Id Entered. Verify your gist : https://gist.github.com/<your_userName>/<gist_id>.
VS Code へ 誤った token を入力
Sync : Invalid / Expired GitHub Token. Please generate new token with scopes mentioned in readme. Exception Logged in Console.
上記エラーはコマンドパレットから Settings Sync 設定リセット、再度セットアップを行う事により解決する。
コマンドパレット(Ctrl + Shift + P)
> Sync Reset Extension Settings