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

VS CodeにおけるGitHub Copilot チートシート

Visual Studio Code の GitHub Copilot は、AI を活用した機能を提供し、より速く、より少ない労力でコードを作成するのに役立ちます。このチートシートは、Visual Studio Code における GitHub Copilot の機能の概要を素早く把握できるようにします。

ヒント

Copilot サブスクリプションをお持ちでない場合は、Copilot 無料プランにサインアップすると、コード補完とチャットインタラクションの月間制限内で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全体におけるタスク固有のスマートアクション

    • コミットメッセージとプルリクエストのタイトルおよび説明を生成する
    • テストエラーを修正する
    • 意味のあるファイル検索候補

VS Codeでのチャット体験

コーディングタスクのヘルプを得るために、自然言語でのチャットを開始します。例えば、コードブロックやプログラミングの概念を説明したり、コードの一部をリファクタリングしたり、新しい機能を実装したりするように依頼できます。Copilot Chatの使用について、さらに詳しくはこちら。

アクション 説明
⌃⌘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+.) チャットビューでさまざまなチャットモードを切り替えます。
⌥⌘. (Windows, Linux Ctrl+Alt+.) モデルピッカーを表示して、チャット用の異なるAIモデルを選択します。
コンテキストを追加... さまざまな種類のコンテキストをチャットプロンプトに添付します。
/ コマンド 一般的なタスクにはスラッシュコマンドを使用するか、再利用可能なチャットプロンプトを呼び出します。
# メンション 一般的なツールまたはチャット変数を参照して、プロンプト内でコンテキストを提供します。
@ メンション チャット参加者を参照して、ドメイン固有のリクエストを処理します。
編集 () 以前のチャットプロンプトを編集し、変更を元に戻します。
履歴 () チャットセッションの履歴にアクセスします。
音声 () 音声 (ボイスチャット) を使用してチャットプロンプトを入力します。チャットの応答は音声で読み上げられます。

ヒント

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

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

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

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

チャット変数

チャットプロンプトでチャット変数を使用して、質問に関連するコンテキストを参照したり、特定のツールを参照したりします。# メンション構文を使用して、チャットプロンプトでチャット変数やツールを参照します。

エージェントモードにより、ツールは自律的なコーディングワークフローの一部として呼び出すことができます。拡張機能とMCPサーバーは、チャットプロンプトで使用できる追加ツールを提供できます。

チャット変数/ツール 説明
#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リポジトリ、課題、プルリクエストなどについて質問します。利用可能な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)。
ターミナルコマンドの自動承認 (実験的機能) エージェントモードで、許可リストと拒否リストを使用してターミナルコマンドの自動承認を有効にします。
MCP MCPサーバーを設定して、エージェントモードの機能とツールを拡張します。

ヒント

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

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

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

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

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

  • チャットモード: チャットがどのように動作し、どのツールを使用でき、コードベースとどのようにやり取りするかを定義します。各チャットプロンプトは、リクエストごとにツールや指示を設定することなく、チャットモードの範囲内で実行されます。

ヒント

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

エディターAI機能

エディターでコーディングしている際に、入力中にCopilotを使用してコード補完を生成できます。インラインチャットを呼び出して、コーディングの流れを中断せずに、Copilotに質問したりヘルプを得たりできます。例えば、Copilotに特定の関数やメソッドの単体テストを生成するように依頼できます。コード補完インラインチャットの詳細については、こちらをご覧ください。

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

ヒント

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

ソース管理と課題

AIを使用してコミットやプルリクエストの変更を分析し、コミットメッセージやプルリクエストの説明に対する提案を提供します。

アクション 説明
#changes 現在のソース管理の変更をチャットプロンプトのコンテキストとして追加します。
コンテキストとしてのコミット ソース管理履歴からのコミットをチャットプロンプトのコンテキストとして追加します。
コミットの要約 ソース管理グラフのコミットを右クリックし、Copilot > 要約を選択して、コミット変更の要約を生成します。
コミットメッセージ ソース管理コミットにおける現在の変更に対するコミットメッセージを生成します。
プルリクエストの説明 プルリクエストの変更に対応するプルリクエストのタイトルと説明を生成します。
@github チャットで@github参加者を使用して、リポジトリ全体の課題、プルリクエストなどについて質問します。利用可能なGitHubスキルの詳細については、こちらをご覧ください。
例: @github 私に割り当てられているすべてのオープンなPRは何ですか?, @github @dancing-monaからの最近マージされたPRを表示してください

コードレビュー (実験的機能)

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

アクション 説明
レビューとコメント (プレビュー) コードブロックを選択し、エディターのコンテキストメニューからCopilot > レビューとコメントを選択して、クイックレビューパスを実行します。
Copilotコードレビュー ソース管理ビューでCopilotコードレビューボタンを選択すると、コミットされていないすべての変更をより詳細にレビューできます。

検索と設定

検索ビューでセマンティックに関連する検索結果を取得したり、設定エディターで設定を検索するのに役立ちます。

アクション 説明
セマンティック検索 (プレビュー) 検索ビューにセマンティック検索結果を含めます (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ウェブアプリケーションを作成してください
/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とノートブックのサポート

チャットを使用して、Native Python REPLおよびJupyterノートブックでのPythonプログラミングタスクを支援できます。

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

次のステップ