ユーザーおよびワークスペース設定
Visual Studio Codeは、さまざまな設定を通じて好みに合わせて構成できます。VS Codeのエディター、ユーザーインターフェイス、および機能的な動作のほぼすべての部分に変更可能なオプションがあります。
VS Codeには、設定のスコープ(適用範囲)がいくつか用意されています
- ユーザー設定 - 開いているVS Codeのすべてのインスタンスにグローバルに適用される設定。
- ワークスペース設定 - ワークスペース内に保存され、そのワークスペースが開かれている間のみ適用される設定。
VS Codeは、設定値をsettings JSONファイルに保存します。設定値は、このsettings JSONファイルを直接編集するか、設定を管理するためのグラフィカルインターフェイスを提供する設定エディターを使用して変更できます。
ユーザー設定
ユーザー設定は、VS Codeをカスタマイズするための個人設定です。これらの設定は、開いているVS Codeのすべてのインスタンスにグローバルに適用されます。たとえば、ユーザー設定でエディターのフォントサイズを14に設定すると、コンピューター上のすべてのVS Codeインスタンスでフォントサイズが14になります。
ユーザー設定には、いくつかの方法でアクセスできます
- コマンドパレットで Preferences: Open User Settings(基本設定: ユーザー設定を開く)コマンドを選択します(⇧⌘P (Windows, Linux Ctrl+Shift+P))
- 設定エディターの User(ユーザー)タブを選択します(⌘, (Windows, Linux Ctrl+,))
- コマンドパレットで Preferences: Open User Settings (JSON)(基本設定: ユーザー設定 (JSON) を開く)コマンドを選択します(⇧⌘P (Windows, Linux Ctrl+Shift+P))

ワークスペースの設定
ワークスペース設定はプロジェクト固有のものであり、ユーザー設定を上書きします。特定のプロジェクトにのみ適用したい設定がある場合は、ワークスペース設定を使用できます。たとえば、バックエンドサーバーのプロジェクトでは、files.exclude設定を使用して、ファイルエクスプローラーから node_modules フォルダーを除外したい場合があります。
VS Codeの「ワークスペース」は、通常、プロジェクトのルートフォルダーを指します。マルチルートワークスペースという機能を使用すると、VS Codeのワークスペースに複数のルートフォルダーを含めることもできます。VS Codeのワークスペースの詳細をご覧ください。
VS Codeは、ワークスペース設定をプロジェクトのルートにある .vscode フォルダーに保存します。これにより、バージョン管理(Gitなど)されているプロジェクトで他のメンバーと設定を簡単に共有できます。
ワークスペース設定には、いくつかの方法でアクセスできます
- コマンドパレットで Preferences: Open Workspace Settings(基本設定: ワークスペース設定を開く)コマンドを選択します(⇧⌘P (Windows, Linux Ctrl+Shift+P))
- 設定エディターの Workspace(ワークスペース)タブを選択します(⌘, (Windows, Linux Ctrl+,))
- コマンドパレットで Preferences: Open Workspace Settings (JSON)(基本設定: ワークスペース設定 (JSON) を開く)コマンドを選択します(⇧⌘P (Windows, Linux Ctrl+Shift+P))

すべてのユーザー設定がワークスペース設定として利用できるわけではありません。たとえば、更新やセキュリティに関連するアプリケーション全体の設定は、ワークスペース設定で上書きすることはできません。
設定エディター
設定エディターは、ユーザー設定とワークスペース設定の両方を管理するためのグラフィカルインターフェイスを提供します。設定エディターを開くには、ファイル > ユーザー設定 > 設定 に移動します。あるいは、コマンドパレット(⇧⌘P (Windows, Linux Ctrl+Shift+P))から Preferences: Open Settings(基本設定: 設定を開く)を実行するか、キーボードショートカット(⌘, (Windows, Linux Ctrl+,))を使用します。
デフォルトでは、設定エディターはエディター領域の上にモーダルオーバーレイとして開きます。この動作は workbench.editor.useModal 設定で変更できます。Settings JSONファイルを開くと、メインウィンドウ内の通常のエディタータブとして開かれます。
設定エディターを開くと、検索して目的の設定を見つけることができます。検索バーを使用して検索すると、設定エディターは条件に一致する設定のみを表示するようにフィルタリングします。これにより、設定をすばやく簡単に見つけることができます。

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はファイルエクスプローラーの設定を表示します。@haspolicy: 組織によって制御されている設定。@id: 設定IDに基づいて設定を検索。たとえば、@id:workbench.activityBar.visible。@lang: 言語IDに基づいて言語フィルターを適用。たとえば、@lang:typescript。詳細については、「言語固有のエディター設定」を参照してください。@tag: VS Codeのシステム固有の設定。たとえば、ワークスペースの信頼関連の設定には@tag:workspaceTrust、アクセシビリティ関連の設定には@tag:accessibility、高度なVS Code設定には@tag:advancedを使用します。高度な設定は特殊なシナリオ向けです。デフォルトでは、@tag:advancedフィルターを使用しない限り、高度な設定は検索結果から除外されます。設定エディターで常に高度な設定を表示するには、 workbench.settings.alwaysShowAdvancedSettings を有効にします。
検索バーは設定の検索クエリを記憶しており、元に戻す(⌘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(機能の貢献)タブを確認することで、その拡張機能の設定を確認することもできます。

カスタム設定を追加する方法の詳細については、拡張機能作成者向けの構成コントリビューションポイントのドキュメントをご覧ください。
設定のJSONファイル
VS Codeは設定値を settings.json ファイルに保存します。設定エディターは、settings.json ファイルに保存されている設定値を確認および変更するためのユーザーインターフェイスです。
また、コマンドパレットで Preferences: Open User Settings (JSON) または Preferences: Open Workspace Settings (JSON) コマンドを使用してエディターで settings.json ファイルを直接開いて、確認や編集を行うこともできます(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
設定は、設定IDと値を指定することでJSONとして記述されます。設定エディターで設定の歯車アイコンを選択し、Copy Setting as JSON(設定をJSONとしてコピー)アクションを選択することで、対応するJSONのキーと値のペアをすばやくコピーできます。

settings.json ファイルは、設定や値のスマート補完、説明のホバー表示など、完全なIntelliSense機能を備えています。設定名の誤りやJSON形式の誤りによるエラーも強調表示されます。

Workbench: Color Customizations(ワークベンチ: 色のカスタマイズ)のように、settings.json でのみ編集可能な設定もあり、設定エディターには Edit in settings.json(settings.jsonで編集)リンクが表示されます。

常に settings.json を直接操作したい場合は、 workbench.settings.editor を json に設定します。その後、ファイル > ユーザー設定 > 設定 やキーボードショートカット(⌘, (Windows, Linux Ctrl+,))を実行すると、常に settings.json ファイルが開くようになり、設定エディターUIは開かなくなります。
設定ファイルの場所
ユーザー 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 を開いて中括弧 {} の間のエントリをすべて削除することで、変更したすべての設定をリセットすることもできます。以前の設定値を復元する方法はないため、削除する際は注意してください。
言語固有のエディター設定
言語固有の設定をカスタマイズするには、設定エディターを開き、フィルターボタンを押して言語オプションを選択し、言語フィルターを追加します。または、検索ウィジェットに @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('language_name' 言語固有の設定を構成する)というオプションが表示された言語モードピッカーが開きます。これを選択すると、その言語エントリを含むユーザー 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 ファイルは、そのプロファイルの設定を変更したときにのみ作成されます。
デフォルト以外のプロファイルを使用しているときに、コマンドパレットで Preferences: Open Application Settings (JSON)(基本設定: アプリケーション設定 (JSON) を開く)コマンドを使用すると、デフォルトプロファイルに関連付けられた settings.json ファイルにアクセスできます(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
設定の優先順位
構成は、さまざまな設定スコープによって複数のレベルで上書きされる可能性があります。以下のリストでは、後のスコープが先のスコープを上書きします
- デフォルト設定 - 設定されていないデフォルト値を示します。
- ユーザー設定 - すべてのVS Codeインスタンスにグローバルに適用されます。
- リモート設定 - ユーザーによって開かれたリモートマシンに適用されます。
- ワークスペース設定 - 開いているフォルダーまたはワークスペースに適用されます。
- ワークスペースフォルダー設定 - マルチルートワークスペースの特定のフォルダーに適用されます。
- 言語固有のデフォルト設定 - 拡張機能によって提供される言語固有のデフォルト値。
- 言語固有のユーザー設定 - ユーザー設定と同じですが、特定の言語に限定されます。
- 言語固有のリモート設定 - リモート設定と同じですが、特定の言語に限定されます。
- 言語固有のワークスペース設定 - ワークスペース設定と同じですが、特定の言語に限定されます。
- 言語固有のワークスペースフォルダー設定 - ワークスペースフォルダー設定と同じですが、特定の言語に限定されます。
- ポリシー設定 - システム管理者が設定するもので、これらは常に他の設定値を上書きします。
設定値はさまざまな型を取ることができます
- 文字列 -
"files.autoSave": "afterDelay" - ブール値 -
"editor.minimap.enabled": true - 数値 -
"files.autoSaveDelay": 1000 - 配列 -
"editor.rulers": [] - オブジェクト -
"search.exclude": { "**/node_modules": true, "**/bower_components": true }
files.exclude や search.exclude などの設定は、オペレーティングシステムのファイルシステムの大文字と小文字の区別に従うglobパターンを使用します(Windows/macOSでは大文字と小文字を区別しない、Linuxでは区別する)。同様に、.gitignore ファイルのパターン( explorer.excludeGitIgnore 設定で使用)も、プラットフォーム固有の大文字と小文字を区別するルールに従います。
プリミティブ型および配列型の値は上書きされます。つまり、別のスコープよりも優先されるスコープで設定された値が、他の値の代わりに使用されます。しかし、オブジェクト型の値はマージ(統合)されます。
たとえば、 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が実行する実行ファイルを指定できます。たとえば、統合ターミナルで使用するシェルを選択できます。セキュリティ強化のため、このような設定はワークスペーススコープではなく、ユーザー設定でのみ定義できます。
以下は、ワークスペース設定でサポートされていない設定のリストです
- git.path
- terminal.external.windowsExec
- terminal.external.osxExec
- terminal.external.linuxExec
これらの設定のいずれかを定義しているワークスペースを初めて開くと、VS Codeは警告を表示し、その後常にその値を無視します。
設定同期
Settings Sync(設定同期)機能を使用して、VS Codeインスタンス間でユーザー設定を共有できます。この機能を使用すると、さまざまなマシン上のVS Codeインストール間で、設定、キーボードショートカット、およびインストール済みの拡張機能を共有できます。設定エディターの右側にある Backup and Sync Settings(設定のバックアップと同期)コマンド、または Accounts(アカウント)アクティビティバーのコンテキストメニューから設定同期を有効にできます。

設定同期をオンにして構成する方法の詳細については、Settings Sync ユーザーガイドをご覧ください。
SSH、開発コンテナー(devcontainer)、WSLなどに接続している場合など、リモートウィンドウに対して拡張機能の同期を行うことはできません。
機能のライフサイクル
機能とそれに対応する設定は、次のいずれかの状態になることがあります。状態に応じて、ワークフローでその機能や設定を使用する際に慎重になる必要がある場合があります。
-
Experimental(実験的) - アーリーアダプター向けの探索的な機能。これらの機能は将来変更または削除される可能性があります。設定エディターでは、これらの設定には
Experimentalラベルが付いています。検索ボックスに@tag:experimentalと入力して、実験的な設定を検索することもできます。
-
Preview(プレビュー) - 最終的な機能を持っていますが、安定性と完成度のために継続的に反復される可能性がある機能や設定。通常、プレビュー機能はデフォルトで無効になっています。設定エディターでは、これらの設定には
Previewラベルが付いています。検索ボックスに@tag:previewと入力して、プレビュー設定を検索することもできます。
-
Stable(安定版) - その機能は安定しており、VS Codeで完全にサポートされています。
実験的機能やプレビュー機能を使用すると、新しい機能を試してフィードバックを提供できます。VS CodeのIssuesでフィードバックを共有してください。
関連リソース
よくある質問
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 ファイルの形式が正しくないか、エラーが含まれています。エラーは、カンマの欠落や不正な設定値のような単純なものかもしれません。コマンドパレットで Preferences: Open User Settings (JSON)(基本設定: ユーザー設定 (JSON) を開く)コマンドを使用して settings.json ファイルを開くと、エラーが赤い波線で強調表示されているはずです(⇧⌘P (Windows, Linux Ctrl+Shift+P))。
ユーザー設定をリセットするにはどうすればよいですか?
VS Codeをデフォルト設定に戻す最も簡単な方法は、ユーザーの settings.json ファイルをクリアすることです。コマンドパレットで Preferences: Open User Settings (JSON) コマンドを使用して settings.json ファイルを開くことができます(⇧⌘P (Windows, Linux Ctrl+Shift+P))。エディターでファイルが開いたら、2つの中括弧 {} の間のすべてを削除してファイルを保存すれば、VS Codeはデフォルト値を使用する状態に戻ります。
ワークスペース設定を使用するのが理にかなっているのはいつですか?
カスタム設定が必要だが、他のVS Codeプロジェクトには適用したくないワークスペースを使用している場合です。良い例として、言語固有のLintルールがあります。
拡張機能の設定はどこにありますか?
一般的に、VS Codeの拡張機能は設定をユーザーまたはワークスペース設定ファイルに保存し、設定エディターUI(Preferences: Open Settings (UI) コマンド)や settings.json ファイル内のIntelliSense(Preferences: Open User Settings (JSON) コマンド)を通じて利用できます。拡張機能名(gitlens や python など)で検索すると、拡張機能によって提供された設定だけに絞り込むことができます。