ユーザー設定とワークスペース設定
Visual Studio Code は、さまざまな設定を通じて好みに合わせて構成できます。VS Code のエディター、ユーザー インターフェイス、および機能の動作のほぼすべての部分に変更可能なオプションがあります。
VS Code は設定に異なるスコープを提供します
- ユーザー設定 - 開いた VS Code のどのインスタンスにもグローバルに適用される設定。
- ワークスペース設定 - ワークスペース内に保存され、ワークスペースが開かれている場合にのみ適用される設定。
VS Code は設定値を設定 JSON ファイルに保存します。設定値は、設定 JSON ファイルを編集するか、設定を管理するためのグラフィカル インターフェイスを提供する設定エディターを使用して変更できます。
ユーザー設定
ユーザー設定は、VS Code をカスタマイズするための個人的な設定です。これらの設定は、開いた VS Code のどのインスタンスにもグローバルに適用されます。たとえば、ユーザー設定でエディターのフォント サイズを 14 に設定すると、コンピューター上の VS Code のすべてのインスタンスで 14 になります。
ユーザー設定にはいくつかの方法でアクセスできます
- コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で Preferences: Open User Settings コマンドを選択します
- 設定エディター (⌘, (Windows, Linux Ctrl+,)) の User タブを選択します
- コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で Preferences: Open User Settings (JSON) コマンドを選択します
ワークスペース設定
ワークスペース設定はプロジェクトに固有であり、ユーザー設定を上書きします。特定のプロジェクトに適用したい特定の設定がある場合は、ワークスペース設定を使用できます。たとえば、バックエンド サーバー プロジェクトの場合、files.exclude
設定でファイル エクスプローラーから node_modules
フォルダーを除外するように設定したい場合があります。
VS Code の「ワークスペース」は、通常、プロジェクトのルート フォルダーです。マルチ ルート ワークスペースと呼ばれる機能を通じて、VS Code のワークスペースに複数のルート フォルダーを持つこともできます。VS Code のワークスペースに関する詳細情報を取得します。
VS Code は、プロジェクトのルートにある .vscode
フォルダーにワークスペース設定を保存します。これにより、バージョン管理された (たとえば Git) プロジェクトで他のユーザーと設定を簡単に共有できます。
ワークスペース設定にはいくつかの方法でアクセスできます
- コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で Preferences: Open Workspace Settings コマンドを選択します
- 設定エディター (⌘, (Windows, Linux Ctrl+,)) の Workspace タブを選択します
- コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で Preferences: Open Workspace Settings (JSON) コマンドを選択します
すべてのユーザー設定がワークスペース設定として利用できるわけではありません。たとえば、更新やセキュリティに関連するアプリケーション全体の設定は、ワークスペース設定で上書きすることはできません。
設定エディター
設定エディターは、ユーザー設定とワークスペース設定の両方を管理するためのグラフィカル インターフェイスを提供します。設定エディターを開くには、File > Preferences > Settings に移動します。または、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から Preferences: Open Settings を使用するか、キーボード ショートカット (⌘, (Windows, Linux Ctrl+,)) を使用して設定エディターを開きます。
設定エディターを開くと、探している設定を検索して見つけることができます。検索バーを使用して検索すると、設定エディターは条件に一致する設定のみを表示するようにフィルタリングします。これにより、設定をすばやく簡単に見つけることができます。
VS Code は、設定を変更するとすぐに変更を適用します。変更した設定は、エディターの変更された行と同様に、設定の左側にある色付きのバーで識別できます。
以下の例では、サイド バーの場所とファイル アイコンのテーマが変更されました。
設定の横にある歯車アイコン (⇧F9 (Windows, Linux Shift+F9)) は、設定を既定値にリセットするオプション、設定 ID をコピーするオプション、JSON の名前と値のペアをコピーするオプション、または設定 URL をコピーするオプションを含むコンテキスト メニューを開きます。
設定 URL を使用すると、ブラウザーから設定エディターの特定の設定に直接移動できます。URL は vscode://settings/<settingName>
の形式で、<settingName>
は移動したい設定の ID です。たとえば、workbench.colorTheme
設定に移動するには、URL vscode://settings/workbench.colorTheme
を使用します。
設定グループ
設定はグループで表示されるため、関連する設定にすばやく移動できます。一番上には Commonly Used グループがあり、一般的なカスタマイズ設定が表示されます。
次の例では、ツリー ビューで Source Control を選択して、ソース管理の設定に焦点を当てています。
VS Code 拡張機能も独自のカスタム設定を追加でき、これらの設定は Extensions セクションの下に表示されます。
設定エディターのフィルター
設定エディターの検索バーには、設定の管理を容易にするためのいくつかのフィルターがあります。検索バーの右側には、じょうごアイコンの付いたフィルター ボタンがあり、検索バーにフィルターを簡単に追加するためのオプションを提供します。
変更された設定
どの設定を構成したかを確認するために、検索バーに @modified
フィルターがあります。設定の値が既定値と異なる場合、またはそれぞれの設定 JSON ファイルで値が明示的に設定されている場合、このフィルターの下に設定が表示されます。
このフィルターは、設定を構成したかどうかを忘れた場合や、誤って設定を構成したためにエディターが期待どおりに動作しない場合に役立ちます。
その他のフィルター
設定を検索するのに役立つ便利なフィルターが他にもいくつかあります。検索バーに @
記号を入力して、さまざまなフィルターを見つけます。
利用可能なフィルターの一部を次に示します
@ext
- 拡張機能に固有の設定。@ext:ms-python.python
のように拡張機能 ID を指定します。@feature
- Features サブグループに固有の設定。たとえば、@feature:explorer
はファイル エクスプローラーの設定を表示します。@id
- 設定 ID に基づいて設定を検索します。たとえば、@id:workbench.activityBar.visible
。@lang
- 言語 ID に基づいて言語フィルターを適用します。たとえば、@lang:typescript
。詳細については、言語固有のエディター設定を参照してください。@tag
- VS Code のシステムに固有の設定。たとえば、ワークスペースの信頼に関連する設定の@tag:workspaceTrust
や、アクセシビリティに関連する設定の@tag:accessibility
。
検索バーは設定の検索クエリを記憶し、元に戻す/やり直し (⌘Z (Windows, Linux Ctrl+Z)/⇧⌘Z (Windows, Linux Ctrl+Y)) をサポートしています。検索バーの右側にある Clear Settings Search Input ボタンで、検索語句やフィルターをすばやくクリアできます。
拡張機能の設定
インストールされている VS Code 拡張機能は、独自の設定を提供することもできます。これらは、設定エディターの Extensions セクションで確認できます。
拡張機能の設定は、拡張機能ビュー (⇧⌘X (Windows, Linux Ctrl+Shift+X)) で拡張機能を選択し、Feature Contributions タブを確認することでも確認できます。
拡張機能の作成者は、カスタム設定の追加に関する詳細を構成コントリビューション ポイントのドキュメントで確認できます。
settings.json ファイル
VS Code は設定値を settings.json
ファイルに保存します。設定エディターは、settings.json
ファイルに保存されている設定値を確認および変更できるユーザー インターフェイスです。
コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) の Preferences: Open User Settings (JSON) または Preferences: Open Workspace Settings (JSON) コマンドを使用してエディターで開くことで、settings.json
ファイルを直接確認および編集することもできます。
設定は、設定 ID と値を指定して JSON として書き込まれます。設定エディターで設定の歯車アイコンを選択し、Copy Setting as JSON アクションを選択することで、設定に対応する JSON の名前と値のペアをすばやくコピーできます。
settings.json
ファイルは、設定と値のスマートな補完と説明ホバーを備えた完全な IntelliSense を備えています。不正な設定名や JSON の書式設定によるエラーも強調表示されます。
Workbench: Color Customizations など、一部の設定は settings.json
でしか編集できず、設定エディターに Edit in settings.json リンクが表示されます。
常に settings.json
を直接操作したい場合は、workbench.settings.editor を json
に設定できます。そうすると、File > Preferences > Settings とキーボード ショートカット ⌘, (Windows, Linux Ctrl+,) は、設定エディター UI ではなく、常に settings.json
ファイルを開きます。
設定ファイルの場所
ユーザー settings.json の場所
プラットフォームに応じて、ユーザー設定ファイルは次の場所にあります。
- Windows
%APPDATA%\Code\User\settings.json
- macOS
$HOME/Library/Application\ Support/Code/User/settings.json
- Linux
$HOME/.config/Code/User/settings.json
ワークスペース settings.json の場所
ワークスペース設定ファイルは、ルート フォルダー内の .vscode
フォルダーの下にあります。プロジェクトまたはソース管理にワークスペース設定の settings.json
ファイルを追加すると、プロジェクトの設定がそのプロジェクトのすべてのユーザーで共有されます。
マルチ ルート ワークスペースの場合、ワークスペース設定はワークスペース構成ファイル内にあります。
設定をリセットする
設定にカーソルを合わせて歯車アイコンを表示し、歯車アイコンをクリックしてから Reset Setting アクションを選択することで、いつでも設定を既定値にリセットできます。
設定エディターを介して個別に設定をリセットできますが、settings.json
を開いて中括弧 {}
の間のエントリを削除することで、変更されたすべての設定をリセットできます。以前の設定値を復元する方法はないため、注意してください。
言語固有のエディター設定
言語固有の設定をカスタマイズする 1 つの方法は、設定エディターを開き、フィルター ボタンを押して言語オプションを選択し、言語フィルターを追加することです。または、検索ウィジェットに @lang:languageId
の形式で言語フィルターを直接入力することもできます。表示される設定は、その特定の言語で構成可能になり、該当する場合はその言語に固有の設定値が表示されます。
言語フィルターが適用されている間に設定を変更すると、その設定は指定されたスコープでその言語に対して構成されます。たとえば、検索ウィジェットに @lang:css
フィルターがあるときにユーザー スコープの diffEditor.codeLens 設定を変更すると、設定エディターは新しい値をユーザー設定ファイルの CSS 固有のセクションに保存します。
検索ウィジェットに複数の言語フィルターを入力した場合、現在の動作では最初の言語フィルターのみが使用されます。
言語ごとにエディターをカスタマイズするもう 1 つの方法は、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) からグローバル コマンド Preferences: Configure Language Specific Settings (コマンド ID: workbench.action.configureLanguageBasedSettings
) を実行して言語ピッカーを開くことです。目的の言語を選択します。すると、選択した言語の言語フィルター付きで設定エディターが開き、その言語の言語固有の設定を変更できます。ただし、workbench.settings.editor 設定を json
に設定している場合は、settings.json
ファイルが新しい言語エントリで開かれ、適用可能な設定を追加できます。
ドロップダウンから言語を選択します
これで、その言語に固有の設定の編集を開始できます
または、workbench.settings.editor が json
に設定されている場合は、ユーザー設定に言語固有の設定を追加し始めることができます
ファイルを開いていて、このファイル タイプのエディターをカスタマイズしたい場合は、VS Code ウィンドウの右下にあるステータス バーの言語モードを選択します。これにより、Configure 'language_name' language based settings オプション付きの言語モード ピッカーが開きます。これを選択すると、ユーザーの settings.json
が言語エントリで開き、適用可能な設定を追加できます。
言語固有のエディター設定は、非言語固有の設定のスコープがより狭い場合でも、常に非言語固有のエディター設定を上書きします。たとえば、言語固有のユーザー設定は、非言語固有のワークスペース設定を上書きします。
言語固有の設定は、他の設定と同様にワークスペース設定に配置することで、ワークスペースにスコープを限定できます。ユーザーとワークスペースの両方のスコープで同じ言語に設定が定義されている場合、それらはワークスペースで定義されているものを優先してマージされます。
次の例を settings.json ファイルに貼り付けて、typescript
および markdown
言語モードのエディター設定をカスタマイズできます。
{
"[typescript]": {
"editor.formatOnSave": true,
"editor.formatOnPaste": true
},
"[markdown]": {
"editor.formatOnSave": true,
"editor.wordWrap": "on",
"editor.renderWhitespace": "all",
"editor.acceptSuggestionOnEnter": "off"
}
}
settings.json
で IntelliSense を使用して、言語固有の設定を見つけるのに役立ちます。すべてのエディター設定と一部の非エディター設定がサポートされています。一部の言語には、既定の言語固有の設定が既に設定されており、Preferences: Open Default Settings コマンドを実行して defaultSettings.json
で確認できます。
複数言語固有のエディター設定
一度に複数の言語の言語固有のエディター設定を構成できます。次の例は、settings.json
ファイルで javascript
と typescript
の両方の言語の設定を一緒にカスタマイズする方法を示しています。
"[javascript][typescript]": {
"editor.maxTokenizationLineLength": 2500
}
プロファイル設定
VS Code のプロファイルを使用して、カスタマイズのセットを作成し、それらをすばやく切り替えることができます。たとえば、特定のプログラミング言語用に VS Code をカスタマイズするのに最適な方法です。
プロファイルに切り替えると、ユーザー設定はそのプロファイルのみにスコープされます。別のプロファイルに切り替えると、その別のプロファイルのユーザー設定が適用されます。このようにして、プロファイルごとに異なる設定を持つことができます。
プロファイルのユーザー設定 JSON ファイルは、次のディレクトリにあります。
- Windows
%APPDATA%\Code\User\profiles\<profile ID>\settings.json
- macOS
$HOME/Library/Application\ Support/Code/User/profiles/<profile ID>/settings.json
- Linux
$HOME/.config/Code/User/profiles/<profile ID>/settings.json
<profile ID>
はプロファイルの一意の識別子です。設定を上書きする各プロファイルには、対応するプロファイル設定ファイルがあります。
プロファイルの settings.json
ファイルは、そのプロファイルの設定を変更したときにのみ作成されます。
既定以外のプロファイルを使用している場合、コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) で Preferences: Open Application Settings (JSON) コマンドを使用して、既定のプロファイルに関連付けられている settings.json
ファイルにアクセスできます。
設定の優先順位
構成は、さまざまな設定スコープによって複数のレベルで上書きできます。次のリストでは、後のスコープが前のスコープを上書きします。
- 既定の設定 - このスコープは、構成されていない既定の設定値を表します。
- ユーザー設定 - すべての VS Code インスタンスにグローバルに適用されます。
- リモート設定 - ユーザーによって開かれたリモート マシンに適用されます。
- ワークスペース設定 - 開いているフォルダーまたはワークスペースに適用されます。
- ワークスペース フォルダー設定 - マルチ ルート ワークスペースの特定のフォルダーに適用されます。
- 言語固有の既定の設定 - これらは、拡張機能によって提供される可能性のある言語固有の既定値です。
- 言語固有のユーザー設定 - ユーザー設定と同じですが、言語に固有です。
- 言語固有のリモート設定 - リモート設定と同じですが、言語に固有です。
- 言語固有のワークスペース設定 - ワークスペース設定と同じですが、言語に固有です。
- 言語固有のワークスペース フォルダー設定 - ワークスペース フォルダー設定と同じですが、言語に固有です。
- ポリシー設定 - システム管理者によって設定され、これらの値は常に他の設定値を上書きします。
設定値にはさまざまなタイプがあります。
- 文字列 -
"files.autoSave": "afterDelay"
- ブール値 -
"editor.minimap.enabled": true
- 数値 -
"files.autoSaveDelay": 1000
- 配列 -
"editor.rulers": []
- オブジェクト -
"search.exclude": { "**/node_modules": true, "**/bower_components": true }
プリミティブ型と配列型の値は上書きされます。つまり、他のスコープよりも優先されるスコープで構成された値が、他のスコープの値の代わりに使用されます。ただし、オブジェクト型の値はマージされます。
たとえば、workbench.colorCustomizations は、UI 要素のグループとそれらの目的の色を指定するオブジェクトを受け取ります。ユーザー設定でエディターの背景を青と緑に設定した場合、
"workbench.colorCustomizations": {
"editor.background": "#000088",
"editor.selectionBackground": "#008800"
}
そして、開いているワークスペース設定でエディターの前景色を赤に設定した場合、
"workbench.colorCustomizations": {
"editor.foreground": "#880000",
"editor.selectionBackground": "#00FF00"
}
そのワークスペースが開いている場合の結果は、これら 2 つの色のカスタマイズの組み合わせになります。あたかも次のように指定したかのようです。
"workbench.colorCustomizations": {
"editor.background": "#000088",
"editor.selectionBackground": "#00FF00",
"editor.foreground": "#880000"
}
上記の例の editor.selectionBackground
のように競合する値がある場合は、通常の上書き動作が発生し、ワークスペース値がユーザー値よりも優先され、言語固有の値が非言語固有の値よりも優先されます。
複数の言語固有の設定に関する注意
複数の言語固有の設定を使用している場合、言語固有の設定はマージされ、優先順位は個々の言語 ID (typescript
および javascript
) ではなく、完全な言語文字列 (例: "[typescript][javascript]"
) に基づいて設定されることに注意してください。これは、たとえば、"[typescript][javascript]"
ワークスペース設定が "[javascript]"
ユーザー設定を上書きしないことを意味します。
設定とセキュリティ
一部の設定では、VS Code が特定の操作を実行するために実行する実行可能ファイルを指定できます。たとえば、統合ターミナルが使用するシェルを選択できます。セキュリティを強化するために、このような設定はユーザー設定でのみ定義でき、ワークスペース スコープでは定義できません。
ワークスペース設定でサポートされていない設定のリストは次のとおりです。
これらの設定のいずれかを定義するワークスペースを初めて開くと、VS Code は警告を発し、その後は常にその値を無視します。
設定の同期
設定の同期機能を使用して、VS Code インスタンス間でユーザー設定を共有できます。この機能を使用すると、さまざまなマシン上の VS Code インストール間で設定、キーボード ショートカット、およびインストールされている拡張機能を共有できます。設定の同期は、設定エディターの右側または Accounts アクティビティ バーのコンテキスト メニューにある Backup and Sync Settings コマンドで有効にできます。
設定の同期の有効化と構成の詳細については、設定の同期ユーザー ガイドを参照してください。
VS Code は、SSH、開発コンテナー (devcontainer)、または WSL に接続しているときなど、リモート ウィンドウとの間で拡張機能を同期しません。
機能のライフサイクル
機能とそれに対応する設定は、次のいずれかの状態になります。状態によっては、ワークフローで機能または設定を使用する際に注意が必要になる場合があります。
-
実験的 - アーリー アダプター向けの探索的な機能。これらの機能は将来変更または削除される可能性があります。設定エディターでは、これらの設定には
Experimental
ラベルが付いています。検索ボックスに@tag:experimental
と入力して、実験的な設定を検索することもできます。 -
プレビュー - プレビュー機能と設定は最終的な機能を備えていますが、安定性と洗練のためにまだ改良される可能性があります。通常、プレビュー機能は既定で無効になっています。設定エディターでは、これらの設定には
Preview
ラベルが付いています。検索ボックスに@tag:preview
と入力して、プレビュー設定を検索することもできます。 -
安定 - 機能は安定しており、VS Code で完全にサポートされています。
実験的およびプレビュー機能を使用すると、新機能を試してフィードバックを提供できます。VS Code の issueでフィードバックを共有してください。
関連リソース
よくある質問
VS Code に「Unable to write settings.」と表示される
設定を変更しようとして (たとえば、自動保存をオンにしたり、新しいカラー テーマを選択したりして)、「Unable to write into user settings. Please open user settings to correct errors/warnings in it and try again.」と表示された場合、settings.json
ファイルの形式が不正であるか、エラーがあることを意味します。エラーは、コンマの欠落や不正な設定値のように単純な場合があります。コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) の Preferences: Open User Settings (JSON) コマンドで settings.json
ファイルを開くと、赤い波線でエラーが強調表示されます。
ユーザー設定をリセットするにはどうすればよいですか?
VS Code を既定の設定に戻す最も簡単な方法は、ユーザーの settings.json
ファイルをクリアすることです。コマンド パレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) の Preferences: Open User Settings (JSON) コマンドで settings.json
ファイルを開くことができます。ファイルがエディターで開いたら、2 つの中括弧 {}
の間のすべてを削除し、ファイルを保存すると、VS Code は既定値の使用に戻ります。
ワークスペース設定を使用するのが理にかなっているのはどのような場合ですか?
カスタム設定が必要なワークスペースを使用していて、他の VS Code プロジェクトにそれらを適用したくない場合。良い例は、言語固有の lint ルールです。
拡張機能の設定はどこにありますか?
一般的に、VS Code 拡張機能は、設定をユーザーまたはワークスペースの設定ファイルに保存し、設定エディター UI (Preferences: Open Settings (UI) コマンド) または settings.json
ファイルの IntelliSense (Preferences: Open User Settings (JSON) コマンド) を介して利用できます。拡張機能名 (例: gitlens
または python
) で検索すると、拡張機能によって提供される設定のみに絞り込むのに役立ちます。