VS Codeで質問モードを使用する
Visual Studio Codeのチャット機能を使うと、自然言語で大規模言語モデル(LLM)と対話し、コードに関するヘルプを得ることができます。チャットの質問モードは、コードベース、コーディング、一般的な技術概念に関する質問に特化して最適化されています。質問モードは、コードベースの理解を深めたり、アイデアをブレインストーミングしたり、コーディング作業のヘルプを得たりするのに特に役立ちます。
前提条件
- Visual Studio Code の最新バージョンをインストールします
- Copilotへのアクセス。Copilot無料プランでは、月ごとの補完とチャットインタラクションの制限が適用されます。
なぜ質問モードを使うのか?
質問モードは、コードベース、コーディング、一般的な技術概念に関する質問に答えるために最適化されています。これを使用して、以下のことができます。
- 「データベース接続文字列はどこで定義されていますか?」や「ソート関数を説明してください」のような、コードベースに関する質問をする。
- 「アプリケーションのパフォーマンスを向上させるにはどうすればよいですか?」や「検索機能を実装する3つの異なる方法を教えてください」のようなアイデアをブレインストーミングする。
- 「新しいReactコンポーネントを作成するにはどうすればよいですか?」や「ファクトリーパターンを実装するにはどうすればよいですか?」のようなコーディング作業のヘルプを得る。
質問モードでは、応答にコードブロックが含まれることがあり、これをコードベースに適用できます。これは、単一ファイル内の小さな編集には適しています。ただし、複数のファイルにわたる大きな変更や、より複雑なコーディング作業には、編集モードとエージェントモードがより適しています。
質問モードを使用する
VS Codeで質問モードを開始するには、以下の手順に従ってください。
-
チャットビューを開き(⌃⌘I (Windows, Linux Ctrl+Alt+I))、チャットモードセレクターから質問を選択します。

-
チャット入力フィールドに質問を入力し、送信()を選択して送信します。
開始するために、これらの質問例をいくつか試してみてください。
「ファクトリーデザインパターンとは何ですか?」「JavaScriptでfetch APIを使用するにはどうすればよいですか?」「新しいReactコンポーネントを作成するにはどうすればよいですか?」
-
コンテキストを追加を使用するか、特定のワークスペースファイルや
#codebaseのような事前定義されたコンテキスト項目を#-メンションすることで、チャットプロンプトにコンテキストを追加します。コンテキストを追加することで、より関連性の高い応答を得ることができます。例えば、現在のプロジェクトに特化した質問をするには、
#codebaseコンテキスト項目を使用できます。チャット入力フィールドに#を入力して、利用可能なコンテキスト項目の一覧を表示します。コンテキストを使用するプロンプトの例をいくつか示します。
「#codebaseでdb接続文字列はどこで定義されていますか?」「#calculator.test.jsにはどのテストフレームワークが使用されていますか?」「#changesの変更点を要約してください」
チャットプロンプトにコンテキストを追加する方法について詳しく学びましょう。
-
質問に基づいて、応答にはコードブロック、ターミナルコマンド、リンク、コード内のシンボルへの参照など、さまざまな種類の豊富なコンテンツが含まれる場合があることに注意してください。
コードブロックをコードベースに適用する方法、または統合ターミナルでターミナルコマンドを直接実行する方法を学びましょう。
チャットからコードブロックを適用する
チャットの応答にコードブロックが含まれている場合、それらを個別にワークスペース内の対応するファイルに適用できます。VS Codeはスマート適用を実行し、ファイル内の適切な場所に変更を挿入します。
コードブロックをコードベースに適用するには、コードブロックにマウスカーソルを合わせ、エディターに適用ボタンを選択します。VS Codeは提案された変更を既存のコードに適用しようとします。

あるいは、コードをコピーするか、現在のカーソル位置に挿入することもできます。コードブロックにマウスカーソルを合わせ、対応するアクションを選択します。
言語拡張機能によっては、チャット応答のコードブロックが、エディターでの体験と同様にIntelliSenseをサポートする場合があります。
コードブロックにシェルコマンドが含まれている場合、ターミナルに挿入(⌃⌥Enter (Windows, Linux Ctrl+Alt+Enter))アクションで統合ターミナルで直接実行できます。

チャット: 次のコードブロック(⌥⌘PageDown (Windows, Linux Ctrl+Alt+PageDown))とチャット: 前のコードブロック(⌥⌘PageUp (Windows, Linux Ctrl+Alt+PageUp))コマンドを使用して、コードブロック間を移動します。
クイックチャット
サイドで完全なチャットセッションを開始することなく、簡単な質問をするにはクイックチャットを使用します。クイックチャットは、クイックピックを開いて質問をすることを可能にする軽量なチャット体験です。
クイックチャットを開くには、タイトルバーのチャットメニューからクイックチャットを開くを選択するか、キーボードショートカット⇧⌥⌘L (Windows, Linux Ctrl+Shift+Alt+L)を使用します。
クイックチャットで質問し、会話を続けたい場合は、チャットビューで開くボタンで完全なチャットセッションに昇格させることができます。
特殊キーワード
プロンプトで特殊キーワードを使用すると、より関連性の高い応答を得ることができます。
-
#-メンション:チャットプロンプトにコンテキストを追加するために使用されます。例えば、コードベース全体を参照するには
#codebase、ワークスペース内の特定のファイル、フォルダー、またはシンボルを参照するには#<ファイル | フォルダー | シンボル>を使用します。チャット入力フィールドに#と入力すると、コンテキスト項目の一覧が表示されます。チャットプロンプトにコンテキストを追加する方法について詳しく学びましょう。 -
@-メンション:データベースとの対話のような特定のトピックに関する質問に答えるのに役立つチャット参加者を参照するために使用されます。チャット入力フィールドに
@と入力すると、利用可能な参加者の一覧が表示されます。@terminalのような組み込みの参加者や、拡張機能が提供する参加者から選択します。 -
スラッシュコマンド:問題の修正を提案する
/fixや、選択したコードの動作を説明する/explainなど、よく使用される指示のショートカットを提供します。チャット入力フィールドに/と入力すると、利用可能なスラッシュコマンドの一覧が表示されます。