ユーザー設定とワークスペース設定

Visual Studio Code は、さまざまな設定を通じて好みに合わせて構成できます。VS Code のエディター、ユーザーインターフェース、および機能的な動作のほぼすべての部分に、変更可能なオプションがあります。

VS Code は設定に異なるスコープを提供します

  • ユーザー設定 - 開く VS Code のすべてのインスタンスにグローバルに適用される設定。
  • ワークスペース設定 - ワークスペース内に保存され、ワークスペースが開かれたときにのみ適用される設定。

VS Code は設定値を settings JSON ファイルに保存します。設定値を変更するには、settings JSON ファイルを編集するか、設定エディターを使用します。設定エディターは、設定を管理するためのグラフィカルインターフェースを提供します。

ユーザー設定

ユーザー設定は、VS Code をカスタマイズするための個人設定です。これらの設定は、開く VS Code のすべてのインスタンスにグローバルに適用されます。たとえば、ユーザー設定でエディターのフォントサイズを 14 に設定すると、コンピューター上のすべての VS Code インスタンスで 14 になります。

ユーザー設定には、いくつかの方法でアクセスできます。

  • コマンドパレットで [基本設定: ユーザー設定を開く] コマンドを選択します (⇧⌘P (Windows、Linux Ctrl+Shift+P))
  • 設定エディターで [ユーザー] タブを選択します (⌘, (Windows、Linux Ctrl+,))
  • コマンドパレットで [基本設定: ユーザー設定を開く (JSON)] コマンドを選択します (⇧⌘P (Windows、Linux Ctrl+Shift+P))

Settings editor with User tab highlighted

ワークスペース設定

ワークスペース設定はプロジェクトに固有であり、ユーザー設定をオーバーライドします。特定のプロジェクトに適用する特定の設定がある場合は、ワークスペース設定を使用できます。たとえば、バックエンドサーバープロジェクトの場合、files.exclude 設定を node_modules フォルダーをエクスプローラーから除外するように設定できます。

VS Code の「ワークスペース」は通常、プロジェクトのルートフォルダーだけです。 マルチルートワークスペースと呼ばれる機能を通じて、VS Code ワークスペースに複数のルートフォルダーを含めることもできます。 VS Code ワークスペースの詳細をご覧ください。

VS Code は、プロジェクトのルートにある .vscode フォルダーにワークスペース設定を保存します。これにより、バージョン管理された (たとえば、Git) プロジェクトで他のユーザーと設定を簡単に共有できます。

ワークスペース設定には、いくつかの方法でアクセスできます。

  • コマンドパレットで [基本設定: ワークスペース設定を開く] コマンドを選択します (⇧⌘P (Windows、Linux Ctrl+Shift+P))
  • 設定エディターで [ワークスペース] タブを選択します (⌘, (Windows、Linux Ctrl+,))
  • コマンドパレットで [基本設定: ワークスペース設定を開く (JSON)] コマンドを選択します (⇧⌘P (Windows、Linux Ctrl+Shift+P))

Settings editor with Workspace tab highlighted

すべてのユーザー設定がワークスペース設定として利用できるわけではありません。たとえば、更新やセキュリティに関連するアプリケーション全体の設定は、ワークスペース設定でオーバーライドできません。

設定エディター

設定エディターは、ユーザー設定とワークスペース設定の両方を管理するためのグラフィカルインターフェースを提供します。設定エディターを開くには、ファイル > 基本設定 > 設定 に移動します。または、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) から 基本設定: 設定を開く を選択するか、キーボードショートカット (⌘, (Windows、Linux Ctrl+,)) を使用して設定エディターを開きます。

設定エディターを開くと、探している設定を検索して見つけることができます。検索バーを使用して検索すると、設定エディターは設定をフィルター処理して、条件に一致するもののみを表示します。これにより、設定をすばやく簡単に見つけることができます。

Filtering settings by searching in the Settings editor

VS Code は、設定を変更するとすぐに変更を適用します。変更した設定は、エディターで変更された行と同様に、設定の左側の色付きのバーで識別できます。

以下の例では、サイドバーの場所とファイルアイコンテーマが変更されました。

Modified settings in the Settings editor showing blue vertical bars to the left of them

設定の横にある歯車アイコン (⇧F9 (Windows、Linux Shift+F9)) をクリックすると、設定をデフォルト値にリセットしたり、設定 ID をコピーしたり、JSON の名前と値のペアをコピーしたり、設定 URL をコピーしたりするためのオプションを含むコンテキストメニューが開きます。

Settings edit gear context menu

ヒント

設定 URL を使用すると、ブラウザーから設定エディターの特定の設定に直接移動できます。URL の形式は vscode://settings/<settingName> です。<settingName> は、移動する設定の ID です。たとえば、workbench.colorTheme 設定に移動するには、URL vscode://settings/workbench.colorTheme を使用します。

設定グループ

設定はグループで表示されるため、関連する設定にすばやく移動できます。上部には [よく使用される設定] グループがあり、一般的なカスタマイズ設定が表示されます。

次の例では、ツリービューで [ソース管理] を選択することにより、ソース管理設定がフォーカスされています。

Settings editor with the Source Control section of the table of contents selected

VS Code 拡張機能は、独自のカスタム設定を追加することもでき、これらの設定は [拡張機能] セクションの下に表示されます。

設定エディターのフィルター

設定エディターの検索バーには、設定の管理を容易にするためのいくつかのフィルターがあります。検索バーの右側には、じょうごアイコンの付いたフィルターボタンがあり、検索バーにフィルターを簡単に追加するためのオプションが用意されています。

変更された設定

構成した設定を確認するには、検索バーに @modified フィルターがあります。設定の値がデフォルト値と異なる場合、または設定の値がそれぞれの設定 JSON ファイルで明示的に設定されている場合、設定はこのフィルターの下に表示されます。

このフィルターは、設定を構成したかどうかを忘れた場合や、設定を誤って構成したためにエディターが期待どおりに動作しない場合に役立ちます。

Settings editor with @modified filter showing changed settings

その他のフィルター

設定の検索に役立つ便利なフィルターが他にもいくつかあります。検索バーに @ 記号を入力して、さまざまなフィルターを見つけてください。

Setting editor @ tag filter dropdown

利用可能なフィルターの例を次に示します。

  • @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)) をサポートしています。検索語句またはフィルターをすばやくクリアするには、検索バーの右側にある [設定検索入力のクリア] ボタンを使用します。

Clear Settings Search Input button in the right of the Settings editor

拡張機能の設定

インストールされている VS Code 拡張機能も独自の設定を提供でき、設定エディターの [拡張機能] セクションで確認できます。

C++ extension settings in the Settings editor

拡張機能の表示 (⇧⌘X (Windows、Linux Ctrl+Shift+X)) から拡張機能を選択し、[機能の貢献] タブを確認することで、拡張機能の設定を確認することもできます。

Python extension Settings list under Feature Contributions tab

拡張機能の作成者は、カスタム設定の追加の詳細について、構成の貢献ポイントに関するドキュメントを参照してください。

settings.json ファイル

VS Code は設定値を settings.json ファイルに保存します。設定エディターは、settings.json ファイルに保存されている設定値を確認および変更できるようにするユーザーインターフェースです。

コマンドパレットで [基本設定: ユーザー設定を開く (JSON)] または [基本設定: ワークスペース設定を開く (JSON)] コマンド (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を使用してエディターで開くことで、settings.json ファイルを直接確認および編集することもできます。

設定は、設定 ID と値を指定することにより、JSON として書き込まれます。設定の設定の歯車アイコンを選択し、[設定を JSON としてコピー] アクションを選択することで、設定に対応する JSON の名前と値のペアをすばやくコピーできます。

User settings.json open in the editor

settings.json ファイルには、設定と値のスマート補完と説明のホバーを備えた完全な IntelliSense があります。不正な設定名または JSON 形式によるエラーも強調表示されます。

IntelliSense for settings.json open in the editor

一部の設定 (ワークベンチ: 色のカスタマイズ など) は settings.json でのみ編集でき、設定エディターに [settings.json で編集] リンクが表示されます。

Workbench: Color Customizations setting with Edit in settings.json link

ヒント

常に settings.json を直接操作する場合は、workbench.settings.editorjson に設定できます。次に、ファイル > 基本設定 > 設定 とキーバインド ⌘, (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 ファイルをプロジェクトまたはソース管理に追加すると、プロジェクトの設定はそのプロジェクトのすべてのユーザーで共有されます。

The File Explorer displaying settings.json under the .vscode folder

マルチルートワークスペースの場合、ワークスペース設定はワークスペース構成ファイル内にあります。

設定のリセット

設定をデフォルト値にリセットするには、設定にカーソルを合わせて歯車アイコンを表示し、歯車アイコンをクリックして、[設定のリセット] アクションを選択します。

設定エディターを使用して設定を個別にリセットできますが、settings.json を開き、中かっこ {} の間のエントリを削除することで、変更されたすべての設定をリセットできます。以前の設定値を復元する方法はないため、注意してください。

言語固有のエディター設定

言語固有の設定をカスタマイズする 1 つの方法は、設定エディターを開き、フィルターボタンを押して、言語オプションを選択して言語フィルターを追加することです。または、@lang:languageId 形式の言語フィルターを検索ウィジェットに直接入力することもできます。表示される設定は、その特定の言語に対して構成可能であり、該当する場合は、その言語に固有の設定値を表示します。

言語フィルターが有効になっている間に設定を変更すると、設定は、その言語の指定されたスコープで構成されます。たとえば、検索ウィジェットに @lang:css フィルターがある間にユーザー スコープの diffEditor.codeLens 設定を変更すると、設定エディターは新しい値をユーザー設定ファイルの CSS 固有のセクションに保存します。

Editing the CSS-specific user-scoped diffEditor.codeLens setting in the Settings editor

検索ウィジェットに複数の言語フィルターを入力した場合、現在の動作では、最初の言語フィルターのみが使用されます。

言語別にエディターをカスタマイズするもう 1 つの方法は、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) からグローバルコマンド [基本設定: 言語固有の設定の構成] (コマンド ID: workbench.action.configureLanguageBasedSettings) を実行することです。言語ピッカーが開きます。目的の言語を選択します。次に、設定エディターが選択した言語の言語フィルターで開き、その言語の言語固有の設定を変更できます。ただし、workbench.settings.editor 設定が json に設定されている場合、settings.json ファイルが開き、適用可能な設定を追加できる新しい言語エントリが表示されます。

Configure language-specific settings command typed up in the Command Palette

ドロップダウンで言語を選択します

Select language dropdown

これで、その言語に固有の設定の編集を開始できます。

Settings editor showing a specific language filter

または、workbench.settings.editorjson に設定されている場合は、ユーザー設定に言語固有の設定の追加を開始できます。

Suggestions for language-specific settings shown in the settings JSON file

ファイルを開いていて、このファイルタイプのエディターをカスタマイズする場合は、VS Code ウィンドウの右下にあるステータスバーの言語モードを選択します。これにより、['language_name' 言語ベースの設定を構成する] オプションを含む言語モードピッカーが開きます。これを選択すると、ユーザー settings.json が開き、適用可能な設定を追加できる言語エントリが表示されます。

言語固有のエディター設定は、言語固有でないエディター設定よりも常に優先されます。言語固有でない設定のスコープが狭い場合でも同様です。たとえば、言語固有のユーザー設定は、言語固有でないワークスペース設定よりも優先されます。

言語固有の設定をワークスペースにスコープするには、他の設定と同様にワークスペース設定に配置します。ユーザーとワークスペースの両方のスコープで同じ言語の設定を定義している場合、ワークスペースで定義された設定が優先されてそれらがマージされます。

次の例は、typescript および markdown 言語モードのエディター設定をカスタマイズするために settings JSON ファイルに貼り付けることができる例です。

{
  "[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 ファイルは、そのプロファイルの設定を変更した場合にのみ作成されます。

デフォルト以外のプロファイルを使用している場合、コマンドパレットで [基本設定: アプリケーション設定を開く (JSON)] コマンド (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を使用して、デフォルトプロファイルに関連付けられている 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 が特定Operations を実行するために実行する実行可能ファイルを指定できます。たとえば、統合ターミナルで使用するシェルを選択できます。セキュリティを強化するために、このような設定はユーザー設定でのみ定義でき、ワークスペーススコープでは定義できません。

ワークスペース設定でサポートされていない設定のリストを次に示します。

  • git.path
  • terminal.external.windowsExec
  • terminal.external.osxExec
  • terminal.external.linuxExec

これらの設定のいずれかを定義するワークスペースを初めて開くと、VS Code は警告を表示し、その後は常に値を無視します。

設定の同期

設定同期機能を使用して、ユーザー設定を VS Code インスタンス間で共有できます。この機能を使用すると、さまざまなマシンにインストールされた VS Code インストール間で、設定、キーボードショートカット、およびインストールされた拡張機能を共有できます。設定エディターの右側にある [設定のバックアップと同期] コマンド、または [アカウント] アクティビティバーのコンテキストメニューから設定同期を有効にできます。

Turn on Settings Sync command in the Accounts Activity Bar menu

設定同期ユーザーガイドで、設定同期のオンと構成の詳細を確認できます。

VS Code は、SSH、開発コンテナー (devcontainer)、または WSL に接続している場合など、リモートウィンドウとの間で拡張機能を同期しません。

機能のライフサイクル

機能とその対応する設定は、次のいずれかの状態になる可能性があります。状態によっては、ワークフローで機能または設定を使用することに注意が必要な場合があります。

  • 試験的 - 初期導入者向けのエクスプローラー機能。これらの機能は、将来変更または削除される可能性があります。設定エディターでは、これらの設定には [試験的] ラベルが付いています。検索ボックスに @tag:experimental と入力して、試験的な設定を検索することもできます。

    Settings editor filtered with '@tag:experimental' showing experimental settings.

  • プレビュー - プレビュー機能と設定には最終的な機能がありますが、安定性と洗練のために反復処理される可能性があります。通常、プレビュー機能はデフォルトで無効になっています。設定エディターでは、これらの設定には [プレビュー] ラベルが付いています。検索ボックスに @tag:preview と入力して、試験的な設定を検索することもできます。

    Settings editor filtered with '@tag:preview' showing preview settings.

  • 安定版 - 機能は安定しており、VS Code で完全にサポートされています。

試験的およびプレビュー機能を使用すると、新機能を試してフィードバックを提供できます。 VS Code の問題でフィードバックを共有してください。

よくある質問

VS Code が「設定を書き込めません」と表示される

設定を変更しようとした場合 (たとえば、自動保存をオンにするか、新しい配色テーマを選択するなど)、「ユーザー設定に書き込めません。ユーザー設定を開いてエラー/警告を修正し、再試行してください。」と表示された場合は、settings.json ファイルの形式が正しくないか、エラーがあります。エラーは、コンマの欠落や不正な設定値などの単純な場合があります。コマンドパレットで [基本設定: ユーザー設定を開く (JSON)] コマンド (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を使用して settings.json ファイルを開くと、赤い波線で強調表示されたエラーが表示されるはずです。

ユーザー設定をリセットするにはどうすればよいですか?

VS Code をデフォルト設定にリセットする最も簡単な方法は、ユーザー settings.json ファイルをクリアすることです。コマンドパレットで [基本設定: ユーザー設定を開く (JSON)] コマンド (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を使用して settings.json ファイルを開くことができます。ファイルがエディターで開いたら、2 つの中かっこ {} の間のすべてを削除し、ファイルを保存すると、VS Code はデフォルト値の使用に戻ります。

ワークスペース設定を使用するのはいつが適切ですか?

カスタム設定が必要なワークスペースを使用しているが、他の VS Code プロジェクトには適用したくない場合。適切な例は、言語固有の Linting ルールです。

拡張機能の設定はどこにありますか?

一般に、VS Code 拡張機能は設定をユーザーまたはワークスペース設定ファイルに保存し、設定エディター UI ([基本設定: 設定を開く (UI)] コマンド) または settings.json ファイルの IntelliSense ([基本設定: ユーザー設定を開く (JSON)] コマンド) を介して利用できます。拡張機能名 (たとえば、gitlens または python) で検索すると、設定を拡張機能によって提供された設定のみに絞り込むことができます。