🧑‍💻

GitHub Copilot の#selectionコマンドで効率的にエージェントを使いこなす

に公開

GitHub Copilot の VS Code 拡張機能には、#selectionという非常に便利なコマンドがあります。このコマンドを使うと、エディタ内で選択したコードやテキストを Copilot Chat のプロンプトに簡単に挿入できます。

一見シンプルな機能ですが、これを使いこなすことで AI エージェントとのやり取りが効率化できると感じたので記事にします。本記事では、特に「エージェントへの複数箇所の添削を一度に依頼する」という使い方に焦点を当てて紹介します。

#selectionコマンドの基本

使い方

  1. エディタ内でコードやテキストを選択
  2. Copilot Chat のプロンプト欄に#selectionと入力
  3. 選択した範囲がプロンプトに自動的に挿入される

たったこれだけです。

実際の使用例を見てみましょう。例えば、エージェントが作成した実装計画ファイルをレビューする場合:

#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 が理解できなかったり、入力が煩雑になったりします。

手順

  1. エージェントが作成したファイル(計画書、実装コードなど)を開く
  2. 修正したい箇所を選択 → プロンプト欄に#selectionと入力 → 指示を記述
  3. 改行
  4. 次の修正箇所を選択 → 再び#selectionと入力 → 指示を記述
  5. 必要な分だけ繰り返し
  6. 最後に「ファイルを更新してください」と指示

たったこれだけで、複数箇所の修正を一度に依頼できます。

#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