ユーザーとワークスペースの設定
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)) で基本設定: ユーザー設定を開くコマンドを選択します。
- 設定エディター (⌘, (Windows、Linux Ctrl+,)) でユーザータブを選択します。
- コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で基本設定: ユーザー設定を開く (JSON) コマンドを選択します。
ワークスペース設定
ワークスペース設定はプロジェクトに固有であり、ユーザー設定を上書きします。特定のプロジェクトに適用したい特定のカスタム設定がある場合は、ワークスペース設定を使用できます。たとえば、バックエンドサーバープロジェクトでは、ファイルエクスプローラーからnode_modules
フォルダーを除外するために、files.exclude
設定を構成できます。
VS Codeの「ワークスペース」は通常、プロジェクトのルートフォルダーです。また、マルチルートワークスペースという機能を通じて、VS Codeワークスペースに複数のルートフォルダーを含めることもできます。VS Codeワークスペースに関する詳細情報をご覧ください。
VS Codeはワークスペース設定をプロジェクトのルートにある.vscode
フォルダーに保存します。これにより、バージョン管理された(たとえばGit)プロジェクトで他のユーザーと設定を簡単に共有できます。
ワークスペース設定にアクセスするにはいくつかの方法があります。
- コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で基本設定: ワークスペース設定を開くコマンドを選択します。
- 設定エディター (⌘, (Windows、Linux Ctrl+,)) でワークスペースタブを選択します。
- コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で基本設定: ワークスペース設定を開く (JSON) コマンドを選択します。
すべてのユーザー設定がワークスペース設定として利用できるわけではありません。たとえば、更新やセキュリティに関連するアプリケーション全体の設定は、ワークスペース設定によって上書きすることはできません。
設定エディター
設定エディターは、ユーザー設定とワークスペース設定の両方を管理するためのグラフィカルインターフェースを提供します。設定エディターを開くには、ファイル > 基本設定 > 設定に移動します。または、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から基本設定: 設定を開くを使用して設定エディターを開くか、キーボードショートカット (⌘, (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
を使用します。
設定グループ
設定はグループで表現されており、関連する設定に素早く移動できます。上部にはよく使用されるグループがあり、一般的なカスタマイズ設定が表示されます。
以下の例では、ツリービューでソース管理を選択することで、ソース管理設定にフォーカスしています。
VS Code拡張機能も独自のカスタム設定を追加でき、これらの設定は拡張機能セクションに表示されます。
設定エディターのフィルター
設定エディターの検索バーには、設定の管理を容易にするためのいくつかのフィルターがあります。検索バーの右側には、漏斗アイコンのフィルターボタンがあり、検索バーにフィルターを簡単に追加するためのオプションが提供されます。
変更された設定
構成した設定を確認するには、検索バーに@modified
フィルターがあります。このフィルターの下に設定が表示されるのは、その値がデフォルト値と異なる場合、またはその値がそれぞれの設定JSONファイルで明示的に設定されている場合です。
このフィルターは、設定を構成したかどうかを忘れた場合や、誤って設定を構成したためにエディターが期待どおりに動作しない場合に役立ちます。
その他のフィルター
設定を検索するのに役立つ便利なフィルターが他にもいくつかあります。検索バーに@
記号を入力すると、さまざまなフィルターを見つけることができます。
利用可能なフィルターの一部を次に示します。
@ext
- 拡張機能に固有の設定。@ext:ms-python.python
のように拡張機能IDを指定します。@feature
- 機能サブグループに固有の設定。たとえば、@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)) をサポートします。検索バーの右側にある設定検索入力のクリアボタンを使用して、検索語句やフィルターを素早くクリアできます。
拡張機能の設定
インストールされたVS Code拡張機能も独自のカスタム設定を提供でき、これらの設定は設定エディターの拡張機能セクションで確認できます。
拡張機能の機能貢献タブを選択して確認することで、拡張機能ビュー (⇧⌘X (Windows、Linux Ctrl+Shift+X)) から拡張機能の設定を確認することもできます。
拡張機能の作成者は、カスタム設定の追加について構成貢献ポイントのドキュメントで詳しく学ぶことができます。
設定JSONファイル
VS Codeは設定値をsettings.json
ファイルに保存します。設定エディターは、settings.json
ファイルに保存されている設定値をレビューおよび変更できるユーザーインターフェースです。
コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で基本設定: ユーザー設定を開く (JSON) または基本設定: ワークスペース設定を開く (JSON) コマンドを使用してエディターで開くことで、settings.json
ファイルを直接レビューおよび編集することもできます。
設定は、設定IDと値を指定してJSON形式で記述されます。設定エディターで設定の歯車アイコンを選択し、設定をJSONとしてコピーアクションを選択することで、対応するJSONのキーと値のペアを素早くコピーできます。
settings.json
ファイルには、設定と値のスマートな補完と説明のホバーを含む完全なIntelliSenseがあります。誤った設定名やJSON形式によるエラーも強調表示されます。
ワークベンチ: カラーカスタマイズなどの一部の設定はsettings.json
でのみ編集でき、設定エディターにsettings.jsonで編集リンクが表示されます。
常にsettings.json
を直接操作したい場合は、workbench.settings.editorをjson
に設定できます。そうすると、ファイル > 基本設定 > 設定とキーバインディング ⌘, (Windows、Linux Ctrl+,) は常にsettings.json
ファイルを開き、設定エディターUIは開きません。
設定ファイルの場所
User settings.jsonの場所
お使いのプラットフォームに応じて、ユーザー設定ファイルは次の場所にあります。
- Windows
%APPDATA%\Code\User\settings.json
- macOS
$HOME/Library/Application\ Support/Code/User/settings.json
- Linux
$HOME/.config/Code/User/settings.json
Workspace settings.jsonの場所
ワークスペース設定ファイルは、ルートフォルダー内の.vscode
フォルダーの下にあります。ワークスペース設定のsettings.json
ファイルをプロジェクトまたはソース管理に追加すると、そのプロジェクトの設定はすべてのユーザーによって共有されます。
マルチルートワークスペースの場合、ワークスペース設定はワークスペース構成ファイル内にあります。
設定のリセット
設定にマウスカーソルを合わせて歯車アイコンを表示し、歯車アイコンをクリックしてから、設定をリセットアクションを選択することで、いつでも設定をデフォルト値にリセットできます。
設定エディターで個別に設定をリセットできますが、settings.json
を開き、中括弧{}
内のエントリをすべて削除することで、変更されたすべての設定をリセットできます。以前の設定値を復元する方法はないため、注意してください。
言語固有のエディター設定
言語固有の設定をカスタマイズする1つの方法は、設定エディターを開き、フィルターボタンを押して、言語オプションを選択して言語フィルターを追加することです。あるいは、検索ウィジェットに@lang:languageId
の形式で言語フィルターを直接入力することもできます。表示される設定は、その特定の言語用に構成可能であり、該当する場合はその言語に固有の設定値が表示されます。
言語フィルターが適用されているときに設定を変更すると、その設定は、その言語の指定されたスコープで構成されます。たとえば、検索ウィジェットに@lang:css
フィルターがある状態でユーザー・スコープのdiffEditor.codeLens設定を変更すると、設定エディターは新しい値をユーザー設定ファイルのCSS固有のセクションに保存します。
検索ウィジェットに複数の言語フィルターを入力した場合、現在の動作では最初の言語フィルターのみが使用されます。
言語によってエディターをカスタマイズするもう1つの方法は、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からグローバルコマンド基本設定: 言語固有の設定を構成 (コマンドID: workbench.action.configureLanguageBasedSettings
) を実行することです。これにより、言語ピッカーが開きます。目的の言語を選択します。すると、設定エディターが選択した言語の言語フィルターで開き、その言語の言語固有の設定を変更できます。ただし、workbench.settings.editor設定がjson
に設定されている場合、settings.json
ファイルが新しい言語エントリで開き、適用可能な設定を追加できます。
ドロップダウンで言語を選択します。
これで、その言語固有の設定を編集できるようになります。
または、workbench.settings.editorがjson
に設定されている場合は、ユーザー設定に言語固有の設定を追加できます。
ファイルを開いていて、そのファイルタイプのエディターをカスタマイズしたい場合は、VS Codeウィンドウの右下にあるステータスバーの言語モードを選択します。これにより、'language_name' 言語ベースの設定を構成オプションを含む言語モードピッカーが開きます。これを選択すると、ユーザーのsettings.json
が言語エントリとともに開き、適用可能な設定を追加できます。
言語固有のエディター設定は、非言語固有のエディター設定よりもスコープが狭い場合でも、常に非言語固有のエディター設定を上書きします。たとえば、言語固有のユーザー設定は、非言語固有のワークスペース設定を上書きします。
他の設定と同様に、言語固有の設定をワークスペース設定に配置することで、ワークスペースにスコープを設定できます。ユーザーとワークスペースの両方のスコープで同じ言語に設定が定義されている場合、ワークスペースで定義された設定が優先されるようにマージされます。
以下の例を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を使用すると、言語固有の設定を見つけるのに役立ちます。すべてのエディター設定と一部の非エディター設定がサポートされています。一部の言語には、すでにデフォルトの言語固有設定が設定されており、基本設定: デフォルト設定を開くコマンドを実行することで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)) で基本設定: アプリケーション設定を開く (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間で設定、キーボードショートカット、およびインストールされた拡張機能を共有できます。設定エディターの右側にあるバックアップと同期設定コマンドまたはアカウントアクティビティバーコンテキストメニューから設定同期を有効にできます。
設定同期の有効化と構成については、設定同期ユーザーガイドで詳しく学ぶことができます。
VS Codeは、SSH、開発コンテナー (devcontainer)、またはWSLに接続している場合など、リモートウィンドウとの間で拡張機能を同期しません。
機能のライフサイクル
機能とその対応する設定は、以下のいずれかの状態にあります。状態によっては、ワークフローでその機能や設定を使用することに注意が必要な場合があります。
-
Experimental (実験的) - 早期採用者向けの探索的機能。これらの機能は将来変更または削除される可能性があります。設定エディターでは、これらの設定には
Experimental
ラベルが付いています。検索ボックスに@tag:experimental
と入力して、実験的な設定を検索することもできます。 -
Preview (プレビュー) - プレビュー機能と設定は最終的な機能を備えていますが、安定性と完成度のためにまだ反復される可能性があります。通常、プレビュー機能はデフォルトで無効になっています。設定エディターでは、これらの設定には
Preview
ラベルが付いています。検索ボックスに@tag:preview
と入力して、プレビュー設定を検索することもできます。 -
Stable (安定版) - この機能は安定しており、VS Codeで完全にサポートされています。
実験的およびプレビュー機能により、新機能を試してフィードバックを提供できます。フィードバックはVS Codeの問題までお寄せください。
関連リソース
よくある質問
VS Codeに「設定を書き込めません」と表示される
設定を変更しようとしたとき (たとえば、自動保存をオンにしたり、新しいカラーテーマを選択したりするとき) に「ユーザー設定に書き込めません。エラー/警告を修正するためにユーザー設定を開いてから、再度お試しください。」というメッセージが表示される場合、それはsettings.json
ファイルが不正な形式であるか、エラーがあることを意味します。エラーは、カンマの不足や不正確な設定値のような単純なものである可能性があります。コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で基本設定: ユーザー設定を開く (JSON) コマンドを使用してsettings.json
ファイルを開くと、赤い波線でエラーが強調表示されているはずです。
ユーザー設定をリセットするにはどうすればよいですか?
VS Codeをデフォルト設定にリセットする最も簡単な方法は、ユーザーのsettings.json
ファイルをクリアすることです。コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) で基本設定: ユーザー設定を開く (JSON) コマンドを使用してsettings.json
ファイルを開くことができます。ファイルがエディターで開いたら、2つの中括弧{}
の間にあるすべてを削除し、ファイルを保存すると、VS Codeはデフォルト値を使用するようになります。
ワークスペース設定を使用するのが理にかなっているのはどのような場合ですか?
カスタム設定が必要なワークスペースを使用しているが、それらを他のVS Codeプロジェクトには適用したくない場合です。良い例は言語固有のリンティングルールです。
拡張機能の設定はどこで確認できますか?
一般に、VS Code拡張機能は設定をユーザーまたはワークスペースの設定ファイルに保存し、設定エディターUI (基本設定: 設定を開く (UI) コマンド) またはsettings.json
ファイル内のIntelliSense (基本設定: ユーザー設定を開く (JSON) コマンド) を介して利用できます。拡張機能名 (例: gitlens
やpython
) で検索すると、拡張機能によって提供される設定のみに絞り込むことができます。