VS Code で編集モードを使用する
Visual Studio Code のチャット編集モードを使用すると、自然言語を使用してプロジェクト内の複数のファイルにわたって編集を行うことができます。編集内容はエディターに直接適用され、周囲のコードの完全なコンテキストとともに、その場で確認できます。
特定のファイルを選択し、明確なコンテキストを提供することで、編集モードをガイドして、的を絞ったコード変更と改善を行うことができます。
Copilot サブスクリプションをまだお持ちでない場合は、Copilot Free プランにサインアップして、Copilot を無料で使用し、月間制限付きで補完とチャットのインタラクションを利用できます。
編集モードを使用する
編集モードでは、編集するファイルを選択し、関連するコンテキストとプロンプトを提供します。Copilot は、プロンプトに基づいてコード編集を提案します。
-
VS Code タイトルバーの Copilot メニューから チャットを開く を選択するか、⌃⌘I (Windows、Linux Ctrl+Alt+I) キーボードショートカットを使用して、チャットビューを開きます。
-
チャットビューのチャットモードドロップダウンから 質問 を選択します。
-
コンテキストを追加 を選択して、プロンプトに関連するコンテキストを示します。
Copilot が行いたい変更に適切なコンテキストを持っていることを確認するために、ワークスペース内のファイルやフォルダーなどのコンテキストをプロンプトに追加します。詳細については、Copilot プロンプトへのコンテキストの追加を参照してください。
アクティブなエディターはコンテキストとして自動的に追加されます。ファイルを追加すると、他の関連ファイルが提案される場合があります。
-
チャット入力フィールドにプロンプトを入力して、行いたい編集の種類を示します。
開始するには、これらの質問例を試してみてください
calculate 関数をリファクタリングして、より効率的にしてください。
アプリにログインフォームを追加します。認証には OAuth を使用します。
calculator クラスのユニットテストを追加します。テストフレームワークとして vitest を使用します。
-
Copilot が提案された編集内容をエディターに直接ストリーミングすることに注意してください。
チャットビューには、編集されたファイルのリストが太字で表示されます。エディターオーバーレイコントロールを使用すると、提案された編集内容間を移動できます。
-
提案された編集内容を確認し、提案された編集内容を承認または破棄します。
-
コード変更を反復して、編集を洗練したり、追加機能を実装したりします。
編集を承認または破棄する
Copilot は、チャットビューの変更されたファイルリストに編集されたファイルをリストします。保留中の編集があるファイルには、エクスプローラービューとエディタータブにもインジケーターが表示されます。
エディターオーバーレイコントロールを使用すると、上 () および 下 () コントロールを使用して、提案された編集内容間を移動できます。保持 または 元に戻す ボタンを使用して、特定のファイルの編集を承認または拒否します。
エディターまたはチャットビューの 保持 または 元に戻す コントロールを使用して、個々のまたはすべての提案された編集を承認または拒否します。
chat.editing.autoAcceptDelay 設定を使用すると、提案された編集内容が自動的に承認されるまでの遅延時間を構成できます。エディターオーバーレイコントロールにカーソルを合わせると、自動承認のカウントダウンをキャンセルできます。
VS Code を閉じると、保留中の編集のステータスが記憶されます。VS Code を再度開くと、保留中の編集が復元され、編集を承認または破棄できます。
編集を元に戻す
コードを編集するリクエストを送信しているときに、これらの変更の一部をロールバックしたい場合があります。たとえば、別の実装戦略を使用したい場合や、Copilot が編集を生成するときに誤った方向に進み始めた場合などです。
チャットビューのタイトルバーにある 最後の編集を元に戻す コントロールを使用すると、最後の編集を元に戻し、最後のリクエストを送信する前の状態に戻ることができます。最後の編集の元に戻すを実行した後、チャットビューのタイトルバーにある 最後の編集をやり直す コントロールを使用して、それらの編集を再度やり直すことができます。
Copilot Edits ビューのリクエストにカーソルを合わせると、編集を元に戻す (削除) コントロール (x アイコン) を使用して、そのリクエスト以降に行われたすべての編集を元に戻すこともできます。
設定
次のリストには、編集モードに関連する設定が含まれています。設定エディター (⌘, (Windows、Linux Ctrl+,)) を使用して設定を構成できます。
- chat.editing.confirmEditRequestRemoval - 編集を元に戻す前に確認を求める (既定値:
true
)。 - chat.editing.confirmEditRequestRetry - 最後の編集のやり直しを実行する前に確認を求める (既定値:
true
)。 - chat.editing.autoAcceptDelay - 提案された編集内容が自動的に承認されるまでの遅延時間を構成します。自動承認を無効にするにはゼロを使用します (既定値: 0)。
- github.copilot.chat.codesearch.enabled (プレビュー) - エージェントモードの動作と同様に、プロンプトに
#codebase
を追加すると、Copilot に適切なファイルを見つけてもらいます (既定値:false
)。 - chat.implicitContext.enabled (試験的) - アクティブなエディターをチャットプロンプトへのコンテキストとして自動的に追加するかどうかを構成します。
- github.copilot.chat.edits.suggestRelatedFilesFromGitHistory (試験的) - Copilot Edits で git 履歴から関連ファイルを提案します (既定値:
false
)。
キーボードショートカット
次のリストには、Copilot Edits に関連するデフォルトのキーボードショートカットが含まれています。キーボードショートカットエディター (⌘K ⌘S (Windows、Linux Ctrl+K Ctrl+S)) を使用して、デフォルトのキーボードショートカットを変更できます。
- ⇧⌘I (Windows Ctrl+Shift+I、Linux Ctrl+Shift+Alt+I) - Copilot Edits ビューを開く
- ⌥⌘Enter (Windows、Linux Ctrl+Alt+Enter) - チャットビューから Copilot Edits にプロンプトを送信する
- ⌘/ (Windows、Linux Ctrl+/) - プロンプトにコンテキストをアタッチする
- - 編集したすべてのファイルをディスクに保存する
- ⌘Enter (Windows、Linux Ctrl+Enter) - すべての編集を承認する
- ⌘Backspace (Windows、Linux Ctrl+Backspace) - すべての編集を破棄する
- ⇧⌥F5 (Windows、Linux Shift+Alt+F5) - ファイル内の前の編集に移動する
- ⌥F5 (Windows、Linux Alt+F5) - ファイル内の次の編集に移動する
Copilot Edits ビューに固有のアクションのキーボードショートカットを変更する場合は、when
句に次の条件を含める必要があります: chatLocation == 'editing-session'
。
制限事項
- 複数の同時編集セッションはまだサポートされていません。
@workspace /new
を使用して新しいプロジェクトをスキャフォールディングすることは、編集セッションではまだサポートされていません。当面は、最初のスキャフォールディングには Copilot チャットを使用してください。#codebase
はクエリに関連するコンテキストを見つけるのに優れていますが、後続の生成された編集の品質は大きく異なります。改善されたエージェントエクスペリエンスでファイルを見つけるには、github.copilot.chat.codesearch.enabled (プレビュー) 設定を試すか、プロンプトにファイルを明示的に追加して、より良い結果を作成してください。- カスタムテキスト形式とバイナリファイル形式のサポートは、存在しないか、テストされていません。
よくある質問
Copilot Edits ビューの場所を変更できますか?
Copilot Edits ビューをアクティビティバーにドラッグアンドドロップして、プライマリサイドバーに表示できます。セカンダリサイドバーに移動することもできます。詳細については、VS Code の カスタムレイアウト を参照してください。
エージェントモードではなく、編集モードを使用する理由は何ですか?
編集モードとエージェントモードのどちらかを選択するには、次の基準を考慮してください
- 編集範囲: リクエストにコード編集のみが含まれており、変更の正確な範囲がわかっている場合は、編集モードを使用する場合があります。
- 期間: エージェントモードでは、リクエストを処理するために複数のステップが必要になるため、応答を得るまでに時間がかかる場合があります。たとえば、編集する関連するコンテキストとファイルを特定し、行動計画を決定するなどです。
- 非決定的: エージェントモードは、生成された編集の結果を評価し、複数回反復する場合があります。その結果、エージェントモードは編集モードよりも非決定的になる可能性があります。
- リクエストクォータ: エージェントモードでは、タスクの複雑さによっては、1 つのプロンプトがバックエンドへの多数のリクエストにつながる可能性があります。