複数のOSでVSCodeを使うならSettings Sync拡張機能を使うべき!
仕事柄 ホストOSのWindows上のHyper-Vで、ゲストOSのUbuntuを動かす、みたいな開発環境でいろいろやっています。
ホストOS/ゲストOSともにVSCodeを愛用していて、設定についてはSettings Syncを使って同期しているのですが、「Linuxではこの設定を使いたいけど、Windowsでは使いたくないんだよなぁ」ってことが結構あって悩んでいました。
VSCodeのissuesにも同じような悩みを持つ人が挙げたissueがありますが、2019/06/12時点でまだ公式な対応方法はないようです。
こんな悩みを抱えていたある日、なんとなくSettings SyncのWikiを読んでいると…
上のページを見つけました。どれどれ…。
Settings Sync supports per-os and per-host inline settings and keybindings by using Sync Pragmas.
Settings Syncは、Sync Pragmas機能を使用してOS毎およびホスト毎の設定とキーバインドをサポートします。
悩みを解決する方法はこれだー!!
Sync Pragmas機能のざっくりとした使い方
詳細はWikiを見ていただくとして、ざっくりとは以下のような感じです。
{
// @sync os=linux
"window.zoomLevel": "1" // ...(1)
}
(1)の設定をLinuxでのみ適用したい場合、1行上に// @sync os=linux
というキーワードを挿入します。
すると、Settings SyncのSync : 設定をダウンロード
機能を使用したときに、
- Windows OS/Mac OSの場合は(1)を自動的にコメントアウトしてダウンロードする
(=設定が無効となる)
{
// @sync os=linux
// "window.zoomLevel": "1" // ...(1)
}
- Linux OSの場合は何もしない
(=設定が有効となる)
{
// @sync os=linux
"window.zoomLevel": "1" // ...(1)
}
という動作を自動処理してくれます。
補足
先ほどの// @sync ...
キーワードを挿入してSync : 設定をアップロード
機能を使用した後、すぐにSync : 設定をダウンロード
機能を使用しても(自分のWindows環境では)自動処理は実行されませんでした。たぶん既に最新の設定を持っている場合は自動処理が実行されないのだと思います。
その場合は、Sync : 拡張機能の設定をリセット
機能を使用して初期化してからやるとうまくいきます。(トークン等の情報を控えておくようにしてくださいね)
キーバインドについては、v3.3.0から対応するみたいなのでもう少し待ちましょう。
これでVSCodeがより使いやすくなりそうです!