VSCodeの設定の切り替えや共有に便利なプロファイル機能を活用しよう

## 1. はじめに

魅力的な機能が多数登場しているVSCode、新しい機能や設定を試しているうちに、試用中の拡張機能が増えたり、設定が肥大化したりして魔改造になりがち。環境は綺麗に保ちたいですよね。

VSCodeの各種設定を綺麗に保つには、プロファイル機能を活用して、「普段使い用」や「お試し用」のように用途別の設定(プロファイル)として用意しておき、作業に適したプロファイルに切り替えて作業するのがおすすめです。

:::note info
プロファイル機能は [1.75 ( January 2023 )](https://code.visualstudio.com/updates/v1_75) でGA(一般公開)となりました。
その後も機能追加が行われています。
本記事では執筆時点の最新版 [1.85 ( November 2023 )](https://code.visualstudio.com/updates/v1_85) を対象としています。
:::

プロファイルはエクスポート・インポートもできるので、VSCodeの各種設定をプロファイルにまとめておき、エクスポートしたものをインポートしてもらうことで簡単に設定を共有できます。

よく使う設定をプロファイルに盛り込んでチームで共有管理したり、ハンズオン受講に必要となる設定をエクスポートし受講者にインポートしてもらうことでスムーズにハンズオンを受講してもらうなど、VSCodeの設定を複数人で共通化したい場面でも活用できそうです。

本記事ではそんなプロファイル機能の活用方法についてご紹介します。

## 2. プロファイル機能とは

プロファイル機能は VSCodeの各種設定 ( `settings.json` + 拡張機能 + キーバインド + スニペット + ユーザータスク + UIの状態 ) をおまとめしたものにお好きな名前を付けることができ、いつでも切り替えることができ、エクスポート・インポートできる機能です。

https://code.visualstudio.com/docs/editor/profiles

例えば、`Default`プロファイルを普段使い用とし、`Test`プロファイルを新規作成しお試し用とすることで、新しい設定や拡張機能を試したい場合は`Test`プロファイルに切り替えて作業することで、`Default`プロファイルの設定を汚すことなく安心して新しい設定を試すことができます。

プロファイルを新規作成する際は、まっさらな初期設定のプロファイルも作れるので、カスタマイズする前のクリーンインストール直後のような状態にすることも簡単にでき、問題の切り分けをしたり、デモ環境を整備するのに便利です。もちろんいつでも既存のプロファイルに切り替えて戻すこともできるので、安心して新しいプロファイルを用意し切り替えることができます。

また、定番の設定があらかじめ盛り込まれている テンプレート( `Python`、`Node.js`、`Doc Writer` など ) が用意されていますので、それらのテンプレートをベースとしてプロファイルを作成することもできたり、既存のプロファイルをベースとして新しいプロファイルを作成することもできます。

作成したプロファイルはエクスポートやインポートもできるので、バックアップとして別の場所に保存しておいたり、複数のプロファイルから必要な設定のみをインポートしてプロファイルを作ったり、他の人にインポートして使ってもらうこともできます。

エクスポート機能を使ってインターネット上で誰でも設定内容の閲覧やインポートが可能なURLも発行できますので、便利なノウハウの共有にも便利そうですね。

## 3. 現在のプロファイルを見てみよう

`Activity Bar`にある歯車アイコン( `Manage` ) を押すと表示される `Profiles` の項目で確認できます。
デフォルトでは、以下のスクリーンショットのように `Default`(`規定`) プロファイルが適用されていると思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/58423ebc-f21d-6607-eafd-c367c529fada.png)

`Show Profile Contents` を押すと、以下のスクリーンショットのように、プロファイルの内容を確認できます。

下記スクリーンショットより、プロファイルには、`settings.json`や、キーバインド、スニペット、ユーザータスク、UIの状態、拡張機能が "部分プロファイル"(`Partial Profile`) として含まれ、プロファイルの設定によってはこれらの "部分プロファイル" を含めないことも可能であることが分かります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/a3890913-0f8a-41d2-b4cf-02c8d7667a44.png)

`Default`プロファイル以外を使用していて、そのプロファイルに含まれていない"部分プロファイル"の設定については、`Default`プロファイルに含まれる部分プロファイルが使用されます。

:::note warn
使用しているプロファイルに部分プロファイルが含まれていない場合、`Default`プロファイル内の部分プロファイルが使用されます。
そのため、`Default`プロファイル内の設定を変更すると他のプロファイルで作業する場合にも影響する場合があることに留意が必要です。
:::

この仕様については、`Partial Profile` の章をご参照ください。

https://code.visualstudio.com/docs/editor/profiles#_partial-profile

そのため、`Default` プロファイルは、お試し用の設定を追加して汚してしまう用途にはあまり向いていないと思われます。そのような用途には、お試し用の別のプロファイルを作るのが良さそうですね。

## 4. プロファイルを作成しよう

プロファイルの作成方法をご紹介します。

### 4.1. まっさらな初期設定の新規プロファイルを作成する

`Activity Bar`にある歯車アイコン( `Manage` ) を押し、`Profiles` → `Create Profile` を押します。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/fb3a2b59-3b8a-4018-1e16-f32e556b1346.png)

プロファイル名を聞かれますので、`Test` など、お好きな名前を付けます。
`Copy from:` を `None` にすることでまっさらな初期設定のプロファイルを作成できます。
`Icon:` にお好きなアイコンを選択するとプロファイルを区別するのに分かりやすいです。
プロファイルに含めたい設定(部分プロファイル)をチェックボックスで選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/49245160-d57c-9a4e-a7e1-0a3bc8c686d3.png)

`Create` を押すと新規プロファイルが作成され、切り替わります。
切り替わった後は、以下のスクリーンショットのように、VSCodeの画面構成や拡張機能、設定( `settings.json` ) などの内容が初期状態になります。

プロファイル作成時に指定したアイコンは左下に表示されており、今選択しているプロファイルが分かりやすくなっています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/1daa672b-9225-9f54-6a4c-a0779403d072.png)

上記のスクリーンショットでは確かに、拡張機能は `Japanese Language Pack` のみとなっていますし、`settings.json` の内容は空ですね。カスタマイズされていない状態です。

このように、まっさらな初期設定のプロファイルを作成し切り替えることで、お手軽にクリーンインストール直後のような状態にすることができます。
問題の切り分けをしたい場合や、デモ環境を準備したい場合など、まっさらな初期設定の環境が欲しい場合に役立ちそうですね。

### 4.2. 既存のプロファイルをベースにして新規プロファイルを作成する

プロファイルを作成する際、既存のプロファイルをベースとすることもできます。

例として `Default` プロファイルをベースとして新規プロファイルを作成する例を紹介します。
`Activity Bar`にあるプロファイルの`Manage`アイコン( `Default`プロファイルの場合は歯車アイコン ) を押し、`Profiles` → `Create Profile` を押します。

プロファイル名を聞かれますので、`Default-Backup-20231217` など、お好きな名前を付けます。
`Copy from:` を `Default` にすることで `Default`プロファイルをベースとして作成できます。
`Icon:` にお好きなアイコンを選択し、プロファイルに含めたい設定(部分プロファイル)をチェックボックスで選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/6d8781ab-0814-f8ea-603f-2c4aff349b93.png)

`Create` を押すと新規プロファイルが作成され、切り替わります。
切り替わった後は、VSCodeの画面構成や拡張機能、設定( `settings.json` ) などの内容が`Default`プロファイルと同様となっていることをご確認ください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/101e6cb5-fc8c-6dc8-d6c2-de54cc7bfee2.png)

この例のように、`Default` プロファイルをベースとしたプロファイルをバックアップとして作っておくことで、元の `Default` プロファイルから不要と思われる設定を削除するなど、`Default`プロファイルの内容を安心して整理しやすくなりますので、VSCodeの設定を断捨離するのに便利です。

### 4.3. テンプレートをベースにして新規プロファイルを作成する

定番の拡張機能などが予め含まれている下記のようなテンプレートが用意されているので、テンプレートをベースとしてプロファイルを作成することで推奨されている設定を簡単に採用することができます。

| テンプレート名 |              概要              |
| -------------- | ------------------------------ |
| Python         | Python development             |
| Data Science   | all data and notebook work     |
| Doc Writer     | writing documentation          |
| Node.js        | all Node.js work               |
| Angular        | all Angular work               |
| Java General   | all Java work                  |
| Java Spring    | all Java and Spring developers |

各テンプレートの最新の情報は、下記ドキュメントの`Profile Templates` の章をご参照ください。
テンプレートに含まれる設定内容も記載されており、推奨の設定を知る上でも参考になります。

https://code.visualstudio.com/docs/editor/profiles#_profile-templates

下記に `Python` テンプレートをベースとしてプロファイルを作成する例をご紹介します。

`Activity Bar`にあるプロファイルの`Manage`アイコン( `Default`プロファイルの場合は歯車アイコン ) を押し、`Profiles` → `Create Profile` を押します。

プロファイル名を聞かれますので、`Python-dev` など、お好きな名前を付けます。
`Copy from:` を `Python` にすると `Python`のテンプレートをベースとして作成できます。
`Icon:` にお好きなアイコンを選択し、プロファイルに含めたい設定(部分プロファイル)をチェックボックスで選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/15298f52-5a9a-1279-3dcf-398d787fe4ce.png)

`Create` を押すと新規プロファイルが作成され、切り替わります。
切り替わった後は、拡張機能、設定( `settings.json` ) などの内容が、プロファイル作成時に選択したテンプレートの内容になっていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/30a76340-8c75-36c4-e381-71e222c970f5.png)

このようにテンプレートをベースとしてプロファイルを作成することで、推奨されている設定を簡単に取り込むことができますので、新規プロファイルを作成する際に最初に実施しておくと便利です。もちろん必要に応じてカスタマイズしていくことも可能です。

## 5. プロファイルを切り替えよう

`Activity Bar`にあるプロファイルの`Manage`アイコン( `Default`プロファイルの場合は歯車アイコン ) を押すと表示される `Profiles` の項目から切り替えたいプロファイルを選択すると切り替えることができます。

下記は `Default` プロファイルから `Test` プロファイルに切り替える場合の例です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/b5d82a56-deb8-f14b-95c3-91aa53b54d8a.png)

VSCodeの機能や設定について実験的な変更を試したい場合、`Default` プロファイルで作業するのではなく、お試し用の別のプロファイル ( 例: `Test`プロファイル ) に切り替えて作業することで、`Default`プロファイルの設定を汚すことなく安心して新しい機能や設定を試すことができます。

## 6. プロファイルをエクスポート・インポートしよう

プロファイルのエクスポート機能により、Gistへのアップロードやファイルとして保存が可能です。
エクスポートしたプロファイルを他の人にインポートして使ってもらうことも可能なので、VSCodeの各種設定を手軽に複数人で共有することが可能です。

### 6.1. エクスポートする

プロファイルの内容をGistもしくはファイルに保存することができます。

エクスポート先としてGistを指定した場合、公開用のURLが発行されるので、ブラウザで閲覧するとブラウザ版VSCodeが起動しプロファイルの内容を閲覧できますので、VSCodeの設定内容を手軽にインターネット上に公開することができます。

`Activity Bar`にあるプロファイルの`Manage`アイコン( `Default`プロファイルの場合は歯車アイコン ) を押し、`Profiles` → `Export Profile` を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/a797d3a4-f17f-f5d0-511d-eaf5ef785d4b.png)

エクスポートしたい項目(部分プロファイル)にチェックを入れ、`Export` ボタンを押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/32496483-51a1-cf20-6049-ebd0df5a1159.png)

お好きな名前を付けます( 例: `Default-Export-20231217` )。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/a0cc2fed-d936-e38d-f834-ab4a08afce3a.png)

保存先を指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/4facd080-f31c-48d2-44be-0e2b8468db3a.png)

保存先に `GitHub gist` を選んだ場合、`GitHub`へのログインを求められますのでログインします。
ログイン後、以下のようにプロファイルがエクスポートされた旨のダイアログが表示されます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/09b53fe1-a9b6-1ce0-ae50-919d6b002451.png)

`Copy Link` を押して URLをクリップボードに格納するか、`Open Link`を押して ブラウザで開きます。

URLは `https://vscode.dev/editor/profile/github/{GUID}` の形式です。
このURLを他の人に共有することで設定をインポートしてもらうこともできます。

リンクをブラウザで開くと、このプロファイルが適用されたVSCodeがブラウザ上で起動し、プロファイルの内容を確認することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/a74dda90-fd29-7532-65b9-b93a32ed62f3.png)

プロファイルはGistにアップロードされていますので、Gistでも内容を確認できます。
なお、前述のURLに含まれる`{GUID}` はGistのコンテンツのGUIDです。

https://gist.github.com/

:::note warn
プロファイルをGistにエクスポートした場合、Gist上では `Secret`(非公開) で作成されていますが、エクスポート成功ダイアログで取得できるURLからはプロファイルの内容を誰でも閲覧できることに留意が必要です。

`Secret`なGistの内容をインターネット上の誰でも閲覧できるURLとなっていますのでURLを共有する場合は注意が必要です。

また、認証情報やパスの情報などセキュアな情報が`setting.json`やユーザータスクなどに含まれていないかにも気をつけたほうが良さそうですね。
:::

なお、保存先として `Local file` を選んだ場合、指定した保存先ディレクトリにファイル( 例: `Default-Export-20231217.code-profile` ) として保存されます。
プロファイルをインポートする際はこのファイルを指定することも可能です。

### 6.2. インポートする

エクスポートされたプロファイルを読み込むことができます。

`Activity Bar`にあるプロファイルの`Manage`アイコン( `Default`プロファイルの場合は歯車アイコン ) を押し、`Profiles` → `Import Profile` を押します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/de93ba9e-d2dc-a92a-fd4c-cf003ca98669.png)

前述の手順でエクスポートしたURL( `https://vscode.dev/editor/profile/github/{GUID}` )、もしくは、
ファイル( 例: `Default-Export-20231217.code-profile` ) のパスを指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/8ac067d8-d142-e5d0-f736-b211d24cf5e9.png)

プロファイルの内容を確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/e5054198-71e1-5534-cd2a-aabc15191dc1.png)

内容に問題が無ければ `Create Profile` を押し、お好きな名前を付けて `Create` を押し、新規プロファイルとして保存します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/80083ccc-dfc0-5994-7dad-af2ea68eceec.png)

インポートしたプロファイルに確かに切り替わっていればOKです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21106/c3a7cf42-f1b7-6512-3a8d-287372bbbd7b.png)

プロファイルのエクスポート・インポートを活用することで手軽に設定を共有できますね。

## 7. まとめ

VSCodeのプロファイル機能を活用することで、VSCodeの各種設定を目的別に切り替えることができ、不要な設定が蓄積することを防ぐなど、既存の設定を汚さないようにすることができ、設定を綺麗に保つことができます。

`Default`プロファイル以外のプロファイルを適用している場合でも、そのプロファイルに含まれていない部分プロファイルについては、`Default`プロファイルに含まれる部分プロファイルが使用されるため、特に`Default`プロファイルは断捨離を行い、綺麗に保つことがポイントだと思います。

プロファイルのエクスポート・インポートを行うことでVSCodeの各種設定を簡単に共有できますので、チームで設定を共通化したい場合や、ハンズオン受講者に実施してもらいたい設定がある場合など、VSCodeの各種設定を共有する際も便利です。

また、プロファイルには、セキュアな情報が含まれる可能性がありますので、エクスポートする際には内容の確認を行い、共有する際には、関係者外に情報が漏洩しないようご注意ください。特に `https://vscode.dev/editor/profile/github/{GUID}` のURLを共有すると誰でも内容を閲覧できることに留意が必要です。

快適なVSCodeの活用に本記事の内容が役立ちましたら幸いです。