GitHub Copilot の#selectionコマンドで効率的にエージェントを使いこなす
GitHub Copilot の VS Code 拡張機能には、#selectionという非常に便利なコマンドがあります。このコマンドを使うと、エディタ内で選択したコードやテキストを Copilot Chat のプロンプトに簡単に挿入できます。
一見シンプルな機能ですが、これを使いこなすことで AI エージェントとのやり取りが効率化できると感じたので記事にします。本記事では、特に「エージェントへの複数箇所の添削を一度に依頼する」という使い方に焦点を当てて紹介します。
#selectionコマンドの基本
使い方
- エディタ内でコードやテキストを選択
- Copilot Chat のプロンプト欄に
#selectionと入力 - 選択した範囲がプロンプトに自動的に挿入される
たったこれだけです。
実際の使用例を見てみましょう。例えば、エージェントが作成した実装計画ファイルをレビューする場合:
#selection (実際には「#file:plan.md:15-23」などが挿入される)
この認証機能の実装方針について、セキュリティ面でトークンのリフレッシュ処理も含めてください。
#selection (実際には「#file:plan.md:45-52」などが挿入される)
このデータベース設計について、インデックスの最適化案を追加してください。
plan.md を更新してください。
このように、複数の箇所を選択して一度に修正を依頼できます。
#selectionの動作について
チャット欄で#selectionと入力すると、候補リストが表示されます。

選択中のテキストに対応する候補(例: #file:main.cpp:118-134)を選んで Enter を押すと、その範囲がプロンプトに自動的に挿入されます。

詳しくは公式ドキュメント「Chat variables」および「Chat tools - #selection」を参照してください。
実践:エージェントへの複数箇所添削
従来の方法の課題
エージェントが作成した計画ファイルや実装コードをレビューする際、従来は以下のような方法を取っていました:
❌ 自然言語のみで指示
「エラーハンドリングを改善してください」
→ どの箇所の話か AI が理解できず、やり取りが二度手間に
❌ コードを手入力
「src/feature/todo/TodoList.tsxのfetchTodos関数を修正してください」
→ 入力が煩雑で時間がかかる
❌ 1 箇所ずつ個別に指示
1回目の修正指示
↓
エージェントが修正
↓
2回目の修正指示
↓
エージェントが修正
↓
...(繰り返し)
→ 修正箇所が 5 つあれば、5 回プロンプトを送信することになり、プレミアムプラン(月 300 回制限)を大量消費
#selectionを使った効率的な方法
#selectionを使えば、複数の修正を一度のプロンプトにまとめることができます:
#selection (実際には「#file:plan.md:15-23」などが挿入される)
この部分の「カスタムフック」という用語について、初心者にも分かるように補足説明してください。
#selection (実際には「#file:plan.md:35-42」などが挿入される)
このReact Queryの実装方針について、実際の利用例を含めた具体的なコードサンプルを提示してください。
#selection (実際には「#file:plan.md:58-65」などが挿入される)
この認証フローの方針は、セキュリティ面でトークンのリフレッシュ処理も含めた実装を期待しています。その点を考慮した方針に修正してください。
上記3点について、ファイルを更新してください。
#selectionを使わなくても複数の修正を 1 度にまとめることは可能ですが、前述のとおり、どの箇所を指しているのかを明示しないと AI が理解できなかったり、入力が煩雑になったりします。
手順
- エージェントが作成したファイル(計画書、実装コードなど)を開く
- 修正したい箇所を選択 → プロンプト欄に
#selectionと入力 → 指示を記述 - 改行
- 次の修正箇所を選択 → 再び
#selectionと入力 → 指示を記述 - 必要な分だけ繰り返し
- 最後に「ファイルを更新してください」と指示
たったこれだけで、複数箇所の修正を一度に依頼できます。
#selectionを高速入力する工夫
#selectionを頻繁に使う場合、毎回手入力するのは面倒です。
私は Remap というツールを使って、自分のキーボードにカスタムショートカットキーを割り当てています。これにより、ワンキーで#selectionを入力できるようになり、作業効率が大幅に向上しました。
入力の手間を減らすことで、より気軽に#selectionを活用でき、レビューの質と速度が向上します。
実際の開発ワークフロー例
私が実際に行っている、#selectionを活用したワークフローを簡単に紹介します。
ステップ 1:計画ファイルの作成と添削
プロンプト:
「○○機能を実装したい。実装方針を含む計画ファイル(plan.md)を作成してください」
↓ エージェントが計画ファイルを作成
↓ plan.md を開いて、気になる箇所を複数選択
プロンプト:
#selection(1つ目の箇所)
ここをもっと詳しく説明してください。
#selection(2つ目の箇所)
この技術選定の理由を追加してください。
#selection(3つ目の箇所)
セキュリティ面の考慮事項を追記してください。
plan.md を更新してください。
ステップ 2:実装
プロンプト:
「plan.md に基づいて実装してください」
↓ エージェントが実装
↓ 待つ間に別のタスク
ステップ 3:実装のレビュー
↓ 実装されたコードを確認
↓ 修正が必要な箇所を複数選択
プロンプト:
#selection(1つ目のコード)
このエラーハンドリングを改善してください。
#selection(2つ目のコード)
この部分はカスタムフックに切り出してください。
#selection(3つ目のコード)
変数名をより分かりやすくリネームしてください。
コードを修正してください。
ステップ 1〜3 を繰り返し
品質が十分になるまで、このサイクルを繰り返します。
まとめ
GitHub Copilot の#selectionコマンドは、一見地味な機能ですが、使いこなすことで AI エージェントとの協業が効率化されます。複数箇所の添削を一度に依頼できるため、プレミアムプランの消費を抑えつつ、一貫性のある高品質な成果物を得られます。
この記事が、あなたの開発ワークフローの参考になれば嬉しいです。
Discussion