VS Codeのエージェントモードを拡張するには、を試してください!

VS Code の GitHub Copilot チート シート

Visual Studio Code の GitHub Copilot は、AI を活用した機能を提供し、より少ない労力でより速くコードを記述できるように支援します。このチート シートでは、Visual Studio Code の GitHub Copilot の機能の概要を簡単に説明します。

ヒント

Copilot のサブスクリプションをまだお持ちでない場合は、Copilot Free プランにサインアップすると Copilot を無料で使用でき、毎月の補完とチャットの対話に上限があります。

基本的なキーボード ショートカット

  • ⌃⌘I (Windows、Linux では Ctrl+Alt+I) - チャット ビューを開く
  • ⌘I (Windows、Linux では Ctrl+I) - チャット ビューで音声チャット プロンプトを入力
  • ⌘N (Windows、Linux では Ctrl+N) - チャット ビューで新しいチャット セッションを開始
  • ⇧⌘I (Windows では Ctrl+Shift+I、Linux では Ctrl+Shift+Alt+I) - エージェント モードに切り替え
  • ⌘I (Windows、Linux では Ctrl+I) - エディターまたはターミナルでインライン チャットを開始
  • ⌘I (Windows、Linux では Ctrl+I) (長押し) - インライン音声チャットを開始
  • Tab - インライン提案を承認するか、次の編集提案に移動
  • Escape - インライン提案を閉じる

VS Code で AI にアクセス

  • 自然言語を使用してチャットの会話を開始

    • チャット ビュー (⌃⌘I (Windows、Linux では Ctrl+Alt+I)): セカンダリ サイド バーで継続的なチャットの会話を維持
    • エディターまたはターミナルでのインライン チャット (⌘I (Windows、Linux では Ctrl+I)): 作業の流れの中で質問
    • クイック チャット (⇧⌥⌘L (Windows、Linux では Ctrl+Shift+Alt+L)): 現在のタスクから離れずに簡単な質問
  • エディター内の AI

    • コード補完: 入力中に提案を取得、Tab を押して提案を承認
    • コンテキスト メニューの編集アクション: コードの説明や修正、テストの生成、テキスト選択のレビューなど、一般的な AI アクションにアクセス
    • コード アクション: エディターのコード アクション (電球) を取得して、リンティングやコンパイラのエラーを修正
  • VS Code 全体でのタスク固有のスマート アクション

    • コミット メッセージと pull request のタイトルと説明を生成
    • テストのエラーを修正
    • セマンティック ファイル検索の提案

VS Code でのチャット体験

自然言語のチャット会話を開始して、コーディング タスクのヘルプを得ます。たとえば、コード ブロックやプログラミングの概念を説明したり、コードの一部をリファクタリングしたり、新しい機能を実装したりするように依頼します。Copilot チャットの使用に関する詳細情報を取得します。

アクション 説明
⌃⌘I (Windows、Linux では Ctrl+Alt+I) セカンダリ サイド バーでチャット ビューを開きます。
⌘I (Windows、Linux では Ctrl+I) インライン チャットを開始して、エディターまたはターミナルでチャットを開きます。
⇧⌥⌘L (Windows、Linux では Ctrl+Shift+Alt+L) ワークフローを中断せずにクイック チャットを開きます。
⌘N (Windows、Linux では Ctrl+N) チャット ビューで新しいチャット セッションを開始します。
チャット ビューでさまざまなチャット モードを切り替えます。
⌥⌘. (Windows、Linux では Ctrl+Alt+.) モデル ピッカーを表示して、チャット用に別の AI モデルを選択します。
コンテキストを追加... チャット プロンプトにさまざまな種類のコンテキストを添付します。
/ コマンド スラッシュ コマンドを一般的なタスクに使用するか、再利用可能なチャット プロンプトを呼び出します。
# メンション 一般的なツールまたはチャット変数を参照して、プロンプト内でコンテキストを提供します。
@ メンション ドメイン固有のリクエストを処理するために、チャット参加者を参照します。
編集 () 以前のチャット プロンプトを編集し、変更を元に戻します。
履歴 () チャット セッションの履歴にアクセスします。
音声 () 音声 (音声チャット) を使用してチャット プロンプトを入力します。チャットの応答は声に出して読み上げられます。
KaTeX チャット応答で数式をレンダリングします。chat.math.enabled で有効にします。

ヒント

  • # メンションを使用して、チャット プロンプトにより多くのコンテキストを追加します。
  • / コマンドと @ 参加者を使用して、より正確で関連性の高い回答を得ます。
  • 具体的に、シンプルに保ち、フォローアップの質問をして最良の結果を得ます。
  • ニーズに合ったチャット モードを選択します: 質問、編集、エージェント、またはカスタム モードの作成。

プロンプトにコンテキストを追加する

チャット プロンプトにコンテキストを提供することで、より関連性の高い応答を得られます。ファイル、シンボル、エディターの選択範囲、ソース管理のコミット、テストの失敗など、さまざまなコンテキスト タイプから選択します。

アクション 説明
コンテキストを追加 クイック ピックを開いて、チャット プロンプトに関連するコンテキストを選択します。ワークスペース ファイル、シンボル、現在のエディターの選択範囲、ターミナルの選択範囲など、さまざまなコンテキスト タイプから選択します。
ファイルのドラッグ & ドロップ エクスプローラーまたは検索ビューからファイルをドラッグ & ドロップするか、エディター タブをチャット ビューにドラッグします。
フォルダーのドラッグ & ドロップ フォルダーをチャット ビューにドラッグ & ドロップして、その中のファイルを添付します。
問題のドラッグ & ドロップ 問題パネルから項目をドラッグ & ドロップします。
#<ファイル|フォルダー|シンボル> # に続けてファイル、フォルダー、またはシンボル名を入力して、チャットのコンテキストとして追加します。
`#-メンション # に続けてチャット ツールを入力して、特定のコンテキスト タイプまたはツールを追加します。

チャット ツール

チャットでツールを使用して、ユーザーのリクエストを処理しながら専門的なタスクを達成します。そのようなタスクの例としては、ディレクトリ内のファイルのリスト、ワークスペース内のファイルの編集、ターミナル コマンドの実行、ターミナルからの出力の取得などがあります。組み込みのツールまたは MCP サーバーや拡張機能のツールから選択します。

次の表は、VS Code の組み込みツールをリストしています

チャット変数/ツール 説明
#changes ソース管理の変更のリスト。
#codebase 現在のワークスペースでコード検索を実行して、チャット プロンプトに関連するコンテキストを自動的に見つけます。
#editFiles ワークスペースでファイルを作成および編集するためのツール セット。
#extensions VS Code 拡張機能について質問するためのツール。例: 「Python #extensions の始め方は?」
#fetch Web ページからコンテンツを取得します - URL を提供してください。
#findTestFiles 現在のワークスペースでテスト ファイルを見つけるためのツール。
#githubRepo GitHub リポジトリでコード検索を実行するためのツール。例: 「グローバル スニペットとは何ですか #githubRepo microsoft/vscode」
#new 新しい VS Code ワークスペースをスキャフォールドするためのツール。
#openSimpleBrowser 組み込みのシンプル ブラウザーを開き、ローカルにデプロイされた Web アプリをプレビューするためのツール。
#problems 問題パネルからワークスペースの問題をコンテキストとして追加します。コードの修正やデバッグ中に役立ちます。
#readCellOutput ノートブック セルの出力を読み取るためのツール。
#runCommands ターミナルでコマンドを実行し、出力を読み取るためのツール。
#runNotebooks ノートブックでセルを実行し、出力を読み取るためのツール。
#runTasks ワークスペースでタスクを実行し、出力を読み取るためのツール。
#runTests ワークスペースでテストを実行し、出力を読み取るためのツール。
#search 現在のワークスペースでファイルを検索するためのツール セット。
#searchResults 検索ビューの結果をプロンプトのコンテキストとして追加します。
#selection 現在のエディターの選択範囲をプロンプトのコンテキストとして追加します。
#terminalSelection 現在のターミナルの選択範囲をチャット プロンプトのコンテキストとして追加します。
#terminalLastCommand 最後に実行されたターミナル コマンドをチャット プロンプトのコンテキストとして追加します。
#testFailure テストの失敗情報をコンテキストとして追加します。テストの実行および診断時に役立ちます。
#usages 「すべての参照を検索」、「実装を検索」、「定義へ移動」の組み合わせ。
#VSCodeAPI VS Code 拡張機能 API を参照し、VS Code 拡張機能開発に関連する質問をするためのツール。

スラッシュ コマンド

スラッシュ コマンドは、チャット内の特定の機能へのショートカットです。問題の修正、テストの生成、コードの説明など、アクションをすばやく実行するために使用できます。

スラッシュ コマンド 説明
/docs エディターのインライン チャットからコード ドキュメントのコメントを生成します。
/explain コード ブロック、ファイル、またはプログラミングの概念を説明します。
/fix コード ブロックを修正するか、コンパイラまたはリンティングのエラーを解決するように Copilot に依頼します。
/help VS Code でのチャットの使用に関するヘルプを取得します。
/tests エディター内のすべてまたは選択したメソッドと関数のテストを生成します。
/setupTests コードのテスト フレームワークを設定するためのヘルプを取得します。関連するテスト フレームワーク、設定と構成の手順、および VS Code テスト拡張機能の推奨事項を取得します。
/clear チャット ビューで新しいチャット セッションを開始します。
/new 新しい VS Code ワークスペースまたはファイルをスキャフォールドします。自然言語を使用して必要なプロジェクト/ファイルのタイプを説明し、作成前にスキャフォールドされたコンテンツをプレビューします。
/newNotebook 要件に基づいて新しい Jupyter ノートブックをスキャフォールドします。自然言語を使用して、ノートブックに何を含めるべきかを説明します。
/search 検索ビュー用の検索クエリを生成します。自然言語を使用して、検索したいものを説明します。
/startDebugging launch.json デバッグ構成ファイルを生成し、チャット ビューからデバッグ セッションを開始します。
/<プロンプト ファイル名> チャットで再利用可能なプロンプト ファイルを実行します。

チャット参加者

チャット参加者を使用して、チャットでドメイン固有のリクエストを処理します。チャット参加者は @ でプレフィックスが付けられ、特定のトピックについて質問するために使用できます。VS Code には @github@terminal@vscode などの組み込みのチャット参加者が用意されており、拡張機能は追加の参加者を提供できます。

チャット参加者 説明
@github @github 参加者を使用して、GitHub リポジトリ、issue、pull request などについて質問します。利用可能な GitHub スキルに関する詳細情報を取得します。
例: @github 私に割り当てられているすべてのオープン PR は何ですか?@github @dancing-mona からの最近マージされた PR を表示してください
@terminal @terminal 参加者を使用して、統合ターミナルまたはシェル コマンドについて質問します。
例: @terminal このワークスペースで最も大きい 5 つのファイルをリストしてください
@vscode @vscode 参加者を使用して、VS Code の機能、設定、VS Code 拡張機能 API について質問します。
例: @vscode ワード ラップを有効にする方法は?
@workspace @workspace 参加者を使用して、現在のワークスペースについて質問します。
例: @workspace 認証はどのように実装されていますか?

エージェントモード

チャットのエージェント モードでは、自然言語を使用して高レベルのタスクを指定し、AI がリクエストについて自律的に推論し、必要な作業を計画し、コードベースに変更を適用させることができます。エージェント モードは、指定したタスクを達成するために、コード編集とツール呼び出しの組み合わせを使用します。リクエストを処理する際、編集とツールの結果を監視し、発生した問題を解決するために反復します。

アクション 説明
⇧⌘I (Windows では Ctrl+Shift+I、Linux では Ctrl+Shift+Alt+I) チャット ビューでエージェント モードに切り替えます
ツール () エージェント モードで利用可能なツールを設定します。組み込みのツール、MCP サーバー、および拡張機能が提供するツールから選択します。
ツールの自動承認 (実験的) エージェント モードですべてのツールの自動承認を有効にします (chat.tools.autoApprove)。
ターミナル コマンドの自動承認 (実験的) エージェント モードでターミナル コマンドの自動承認を有効にします (chat.tools.terminal.autoApprove)。
MCP MCP サーバーを設定して、追加の機能とツールでエージェント モードを拡張します。

ヒント

  • エージェント モードにツールを追加して、その機能を拡張します。
  • カスタム チャット モードを設定して、エージェント モードの動作方法を定義します。たとえば、読み取り専用の計画モードを実装するなどです。
  • カスタム指示を定義して、コードの生成と構成方法についてエージェント モードをガイドします。

チャット体験をカスタマイズする

チャット体験をカスタマイズして、コーディング スタイル、ツール、開発者のワークフローに合った応答を生成します。VS Code でチャット体験をカスタマイズするにはいくつかの方法があります

  • カスタム指示: コードの生成、コード レビューの実行、コミット メッセージの生成などの一般的なタスクの共通ガイドラインまたはルールを定義します。カスタム指示は、AI が操作を実行すべき条件 (タスクがどのように実行されるべきか) を記述します。

  • 再利用可能なプロンプト ファイル: コードの生成やコード レビューの実行などの一般的なタスクのために再利用可能なプロンプトを定義します。プロンプト ファイルは、チャットで直接実行できるスタンドアロンのプロンプトです。これらは実行されるべきタスク (何が実行されるべきか) を記述します。

  • チャット モード: チャットの動作方法、使用できるツール、およびコードベースとの対話方法を定義します。各チャット プロンプトは、リクエストごとにツールや指示を設定することなく、チャット モードの境界内で実行されます。

ヒント

  • 言語固有の指示を定義して、各言語でより正確な生成コードを取得します。
  • 指示をワークスペースに保存して、チームと簡単に共有します。
  • 一般的なタスクのために再利用可能なプロンプト ファイルを定義して、時間を節約し、チーム メンバーがすぐに始められるようにします。

エディターの AI 機能

エディターでコーディング中に、入力しながら Copilot を使用してコード補完を生成できます。インライン チャットを呼び出して質問し、Copilot からヘルプを得ながら、コーディングの流れを維持します。たとえば、関数やメソッドの単体テストを生成するように Copilot に依頼します。コード補完インライン チャットに関する詳細情報を取得します。

アクション 説明
コード補完 エディターで入力を開始すると、コーディング スタイルに一致し、既存のコードを考慮したコード提案が表示されます。
コード コメント コード コメントに指示を記述して、コード補完プロンプトを提供します。
例: # add、subtract、multiply のメソッドを持つ電卓クラスを記述してください。静的メソッドを使用してください。
⌘I (Windows、Linux では Ctrl+I) エディターのインライン チャットを開始して、エディターから直接チャット リクエストを送信します。自然言語を使用し、チャット変数とスラッシュ コマンドを参照してコンテキストを提供します。
F2 コード内のシンボルの名前を変更するときに、AI を活用した提案を取得します。
コンテキスト メニュー アクション エディターのコンテキスト メニューを使用して、コードの説明、テストの生成、コードのレビューなど、一般的な AI アクションにアクセスします。エディターで右クリックしてコンテキスト メニューを開き、コードの生成を選択します。
コード アクション (電球) コード内のリンティングまたはコンパイラのエラーを修正するために、エディターのコード アクション (電球) を選択します。

ヒント

  • 意味のあるメソッド名や関数名を使用して、より良いコード補完をより速く取得します。
  • コード ブロックを選択してインライン チャット プロンプトの範囲を限定するか、ファイルやシンボルを添付して関連するコンテキストを添付します。
  • エディターのコンテキスト メニュー オプションを使用して、エディターから直接 AI を活用した一般的なアクションにアクセスします。

ソース管理と issue

AI を使用してコミットや pull request の変更を分析し、コミット メッセージや pull request の説明の提案を提供します。

アクション 説明
#changes 現在のソース管理の変更をチャット プロンプトのコンテキストとして追加します。
コンテキストとしてのコミット ソース管理の履歴からコミットをチャット プロンプトのコンテキストとして追加します。
コミット メッセージ ソース管理のコミットで現在の変更に対するコミット メッセージを生成します。
Pull request の説明 Pull request の変更に対応する pull request のタイトルと説明を生成します。
@github チャットで @github 参加者を使用して、リポジトリ全体の issue や pull request などについて質問します。利用可能な GitHub スキルに関する詳細情報を取得します。
例: @github 私に割り当てられているすべてのオープン PR は何ですか?@github @dancing-mona からの最近マージされた PR を表示してください

コードのレビュー (実験的)

AI を使用してコード ブロックの簡単なレビュー パスを実行したり、ワークスペース内の未コミットの変更のレビューを実行したりします。レビュー フィードバックはエディターのコメントとして表示され、そこで提案を適用できます。

アクション 説明
レビューとコメント (プレビュー) コードのブロックを選択し、エディターのコンテキスト メニューからコードの生成 > レビューとコメントを選択して、簡単なレビュー パスを実行します。
コード レビュー ソース管理ビューのコード レビュー ボタンを選択して、すべての未コミットの変更をより深くレビューします。

検索と設定

検索ビューで意味的に関連する検索結果を取得したり、設定エディターで設定の検索を支援したりします。

アクション 説明
セマンティック検索 (プレビュー) 検索ビューにセマンティック検索結果を含めます (search.searchView.semanticSearchBehavior)。
設定検索 (プレビュー) 設定エディターにセマンティック検索結果を含めます (workbench.settings.showAISearchToggle)。

テストを生成する

Copilot は、コードベース内の関数やメソッドのテストを生成できます。チャットのスラッシュ コマンドに関する詳細情報を取得します。

アクション 説明
/tests エディター内のすべてまたは選択したメソッドと関数のテストを生成します。生成されたテストは、既存のテスト ファイルに追加されるか、新しいテスト ファイルが作成されます。
/setupTests コードのテスト フレームワークを設定するためのヘルプを取得します。関連するテスト フレームワーク、設定と構成の手順、および VS Code テスト拡張機能の推奨事項を取得します。
/fixTestFailure 失敗したテストを修正する方法について Copilot に提案を依頼します。
テスト カバレッジ (実験的) まだテストでカバーされていない関数やメソッドのテストを生成します。詳細情報を取得します。

ヒント

  • 使用するテスト フレームワークやライブラリに関する詳細を提供します。

問題のデバッグと修正

Copilot を使用して、コーディングの問題を修正したり、VS Code でのデバッグ セッションの設定と開始に関するヘルプを得たりします。

アクション 説明
/fix コード ブロックの修正方法や、コード内のコンパイラまたはリンティングのエラーを解決する方法について Copilot に提案を依頼します。たとえば、未解決の Node.js パッケージ名を修正するのに役立ちます。
/fixTestFailure 失敗したテストを修正する方法について Copilot に提案を依頼します。
/startDebugging (実験的) launch.json デバッグ構成ファイルを生成し、チャット ビューからデバッグ セッションを開始します。
copilot-debug コマンド プログラムをデバッグするのに役立つターミナル コマンド。実行コマンドの前に付けて、そのデバッグ セッションを開始します (例: copilot-debug python foo.py)。

ヒント

  • メモリ消費量やパフォーマンスの最適化など、必要な修正のタイプに関する追加情報を提供します。
  • コード内の問題を修正するための提案を示す、エディター内の Copilot コード アクションに注意してください。

新しいプロジェクトをスキャフォールドする

Copilot は、プロジェクト構造のスキャフォールドを生成したり、要件に基づいてノートブックを生成したりして、新しいプロジェクトの作成を支援します。

アクション 説明
エージェントモード エージェント モードを使用し、自然言語プロンプトを使用して新しいプロジェクトまたはファイルを作成します。例: タスクを追跡するための svelte Web アプリケーションを作成してください
/new チャット ビューで /new コマンドを使用して、新しいプロジェクトまたはファイルをスキャフォールドします。自然言語を使用して必要なプロジェクト/ファイルのタイプを説明し、作成前にスキャフォールドされたコンテンツをプレビューします。
例: /new typescript と svelte を使用した Express アプリ
/newNotebook チャット ビューで /newNotebook コマンドを使用して、要件に基づいて新しい Jupyter ノートブックを生成します。自然言語を使用して、ノートブックに何を含めるべきかを説明します。
例: /newNotebook 国勢調査データを取得し、Seaborn で主要なインサイトをプレビューする

ターミナル

シェル コマンドに関するヘルプや、ターミナルでコマンドを実行する際のエラー解決方法についてヘルプを得ます。

アクション 説明
⌘I (Windows、Linux では Ctrl+I) ターミナルのインライン チャットを開始して、自然言語を使用してシェル コマンドやターミナルについて質問します。
例: このマシンのコア数は?
@terminal チャット ビューで @terminal 参加者を使用して、統合ターミナルまたはシェル コマンドについて質問します。
例: @terminal このワークスペースで最も大きい 5 つのファイルをリストしてください
@terminal /explain チャット ビューで /explain コマンドを使用して、ターミナルからの何かを説明します。
例: @terminal /explain top シェル コマンド

Python とノートブックのサポート

ネイティブ Python REPL と Jupyter ノートブックで Python プログラミング タスクを支援するためにチャットを使用できます。

アクション 説明
生成
⌘I (Windows、Linux では Ctrl+I)
ノートブックでインライン チャットを開始して、コードブロックまたは Markdown ブロックを生成します。
# Jupyter カーネルからチャット プロンプトに変数を添付して、より関連性の高い応答を得ます。
ネイティブ REPL + ⌘I (Windows、Linux では Ctrl+I) ネイティブ Python REPL でインライン チャットを開始し、生成されたコマンドを実行します。
⌃⌘I (Windows、Linux では Ctrl+Alt+I) チャット ビューを開き、編集またはエージェント モードを使用してノートブックを編集します。
/newNotebook チャット ビューで /newNotebook コマンドを使用して、要件に基づいて新しい Jupyter ノートブックを生成します。自然言語を使用して、ノートブックに何を含めるべきかを説明します。
例: /newNotebook 国勢調査データを取得し、Seaborn で主要なインサイトをプレビューする

次のステップ