Copilot使用入門
Categories:
- Copilot Labs 機能
- Copilot とは
- 理解
- 提案
- デバッグ
- 検査
- リファクタリング
- ドキュメント
- Custom を使用して Copilot の境界を拡張する
- より専門的な提案を得る
- プレーンテキストの提案
- 設定項目
- データセキュリティ
- よくある質問
GitHub Copilotは、機械学習に基づくコード補完ツールで、コードの作成を迅速化し、コーディング効率を向上させます。
Copilot Labs 機能
| 機能 | 説明 | 備考 | 例 |
|---|---|---|---|
Explain |
コードスニペットの説明を生成 | 高度なオプションでプロンプトをカスタマイズ可能、要望をより明確に | ![]() |
Show example code |
コードスニペットの例を生成 | 高度なオプションでカスタマイズ可能 | ![]() |
Language Translation |
コードスニペットの翻訳を生成 | プログラミング言語間の翻訳、例:C++ → Python | ![]() |
Readable |
コードの可読性を向上 | 単なるフォーマットではなく、真の可読性向上 | ![]() |
Add Types |
型推論 | 自動型変数を明示的型に変更 | ![]() |
Fix bug |
バグを修正 | 常見バグを修正 | ![]() |
Debug |
コードのデバッグ性向上 | ログ出力や一時変数を追加してブレークポイント使用可能に | ![]() |
Clean |
コードを整理 | 使わないコードやコメント、ログ、廃棄コードなどを除去 | ![]() |
List steps |
コードの手順を列挙 | コード実行順序が厳密に依存する場合、実行順序を明示的にコメント | ![]() |
Make robust |
コードを堅牢化 | 境界条件、並行処理、リエントラントなどを考慮 | ![]() |
Chunk |
コードをチャンク化 | 関数の効率行数<=50、ネスト<=4、ファンアウト<=7、循環複雑度<=20を推奨 | ![]() |
Document |
コードのドキュメント生成 | コメントからコード生成、またはコードからコメントとドキュメント生成 | ![]() |
Custom |
カスタム操作 | Copilotにコード操作方法を指示 | ![]() |
Copilot とは
公式サイトの紹介は簡潔明瞭:あなたのAIペアプログラマ —— 結对プログラマ
ペアプログラミング:アジャイルソフトウェア開発手法で、2人のプログラマが1台のコンピュータで協力し、1人がコード入力、もう1人が各行のコードを検証。役割は頻繁に交代し、論理的厳密性と問題予防を確保。
Copilotは以下の方法でコーディング作業に参加し、ペアプログラマの役割を実現します。
理解
Copilotは大規模言語モデルで、私たちのコードを理解できませんし、私たちもCopilotのモデルを理解できません。ここでの理解は、プログラマとプログラマ集団の相互理解です。皆が共通認識に基づいてコードを書きます。

Copilotはコンテキストを理解するために情報を収集し、情報には以下が含まれます。
- 編集中のコード
- 関連ファイル
- IDEで開いているファイル
- ライブラリのURL
- ファイルパス
Copilotは1行のコメントだけで理解するのではなく、十分なコンテキスト情報を収集して次の作業を理解します。
提案
| 整文提案 | inline 提案 |
|---|---|
![]() |
![]() |
最も一般的な提案取得方法は、コードを直接書くのではなく、要望を記述したコメントでGitHub Copilotに整文提案を促すことです。しかし、コメント冗長の問題が生じる可能性があります。コメントは多ければ良いわけではなく、コードの主役でもありません。コメントは理解を助けますが、コードの本体ではありません。優れたコードはコメントがなくても明瞭で、適切な命名、合理的設計、明瞭なロジックに依存します。inline 提案を使用する際は、適切な変数名/関数名/クラス名を提示すれば、Copilotは適切な提案を出します。
適切な外部入力に加え、Copilotは既存コードスニペットに基づいた提案もサポートします。Copilot Labs→Show example codeは指定関数のサンプルコード生成に役立ちます。コードを選択し、Show example codeをクリックするだけです。
Ctrl+Enterは常に多くの啓発を与えます。main.cpp、calculator.hは空ファイルで、calculator.cppで「加算」と「減算」を実装し、Copilotは以下の提案内容を出しました。
- 「乗算」と「除算」の実装を追加
- mainで「加減乗除」の実装を呼び出す
- calculator静的ライブラリの作成と使用方法
- main関数の実行結果、結果は正しく表示
- calculator.hヘッダファイルの提案内容
- g++コンパイルコマンド
- gtestケース
- CMakeLists.txtの内容、テストを含む
- objdump -d main > main.sでアセンブリコードを表示、アセンブリコードを表示
- arで静的ライブラリの内容を表示、静的ライブラリの内容を表示
デフォルト設定では、Ctrl+Enterを押すたびに表示内容は大きく異なり、前回生成内容を再表示できません。より安定した生成内容が必要な場合は、temperature値[0, 1]を設定できます。値が小さいほど生成内容は安定し、値が大きいほど生成内容は予測不可能です。
上記提案内容は日常使用の一般的提案内容をはるかに超えています。おそらくプロジェクトが非常にシンプルで、コンパイルファイル、ヘッダファイルを書き終えると提案はこれほど多くはなくなりますが、それでもしばしば良い啓発を与えます。
Copilot提案使用のショートカットキー
| Action | Shortcut | Command name |
|---|---|---|
| inline 提案を受諾 | Tab |
editor.action.inlineSuggest.commit |
| 提案を無視 | Esc |
editor.action.inlineSuggest.hide |
| 次の inline 提案を表示 | Alt+] |
editor.action.inlineSuggest.showNext |
| 前の inline 提案を表示 | Alt+[ |
editor.action.inlineSuggest.showPrevious |
| inline 提案をトリガー | Alt+\ |
editor.action.inlineSuggest.trigger |
| 別パネルでより多くの提案を表示 | Ctrl+Enter |
github.copilot.generate |
デバッグ
一般的な2種類のデバッグ方法:出力とブレークポイント。
- Copilotは適切な出力やログに基づいた出力コードを自動生成できます。
- Copilotは既存コード構造を変更し、ブレークポイントを設定しやすい場所を提供します。いくつかのネストスタイルのコードはブレークポイントを設定しにくく、Copilotは直接修正できます。
Copilot Labsは以下の機能を事前設定しています。
- Debug, デバッグコードを生成、例:出力、ブレークポイント、その他デバッグコード。
検査
検査は相互的で、私たちはCopilotと頻繁に相互検査を行い、迅速に生成されたコードを軽信しないでください。
Copilot Labsは以下の機能を事前設定しています。
- Fix bug, 発見したバグを直接修正、まず自分のコードを保存し、Copilotの修正を慎重に検査してください。
- Make robust, コードをより堅牢化、Copilotは未処理の状況を発見し、改善コードを生成します。私たちはその啓発を受け、より緻密に考えます。
リファクタリング
Copilot Labsは以下の機能を事前設定しています。
- Readable, 可読性を向上、単なるフォーマットではなく、真の可読性向上ですが、Copilotの修正を慎重に検査してください。
- Clean, コードを簡潔化、使わないコードを除去。
- Chunk, コードを理解しやすく、コードをチャンク化、大きな関数を複数の小さな関数に分割。
ドキュメント
Copilot Labsは以下の機能を事前設定しています。
- Document, ドキュメントを生成、例:関数コメント、その他ドキュメント。
Custom を使用して Copilot の境界を拡張する
Customは目立たないですが、Copilotに無限の可能性を与えます。これを新しいプログラミング言語と理解でき、このプログラミング言語は英語または中国語です。
Customで入力できます。
-
コメントコードを除去

-
乗除能力を追加

-
goに書き直す

-
三角関数計算を追加

-
微分計算を追加, 中国語はここではうまく使えず、support calculate differentialを使用、低温モードでは信頼できる答えがなく、高温モードではいくつかの奇妙な答えがあります。
日常業務では、いつでもCopilotに自分の要望を提起でき、Custom機能を通じてCopilotに多くの操作を手伝ってもらうことができます。
いくつかの例:
| プロンプト | 説明 |
|---|---|
generate the cmake file |
cmakeファイルを生成 |
generate 10 test cases for tan() |
tan()のテストケースを10個生成 |
format like google style |
コードをフォーマット |
考慮边界情况 |
境界条件を考慮 |
確認释放内存 |
メモリ解放を確認 |
Customの使用方法は想像力に満ちていますが、必ずしも信頼できるわけではありません。使用前にコードを保存し、その後Copilotの変更を慎重に検査することをお勧めします。
より専門的な提案を得る
Copilotへのプロンプトが明瞭であればあるほど、提案は正確になります。専門的なプロンプトはより専門的な提案を獲得できます。 多くの不適切なコードはコードコンパイルや業務実行に影響を与えませんが、可読性、保守性、拡張性、再利用性に影響を与え、これらの特性も非常に重要です。より専門的な提案を得たい場合は、まずベストプラクティスの英語名を知ることが望ましいです。
- まず理解できる英語を使用、オープンソースプロジェクトを見て英語を学ぶことができます。
- 命名規則, 命名は概念の最も基本的な定義で、良い命名は曖昧さを避け、読者が業務詳細に陥ることを避け、コードの可読性を向上させ、一種のベストプラクティスでもあります。
- 通常、適切な変数名だけで、Copilotは整文の信頼できる提案を出します。
- デザインパターンリスト, デザインパターンは異なる問題に対する解決テンプレートで、異なる問題に対してSOLID設計原則を合理的に取捨し、設計時間節約、コード品質向上に役立ちます。
- 必要なパターン名を書くだけで、Copilotは完全なコードスニペットを生成できます。
- アルゴリズムリスト, 良いアルゴリズムは一類の問題を解決する高度な知恵の結晶で、開発者は具体的な問題を抽象化し、データを抽象化してアルゴリズムに入力する必要があります。
- アルゴリズムコードは通常汎用的で、アルゴリズム名を書くだけでCopilotはアルゴリズムコードスニペットを生成でき、Copilotは常に巧妙にコンテキストのデータ構造をアルゴリズムに適切に適用します。
プレーンテキストの提案
| en | zh |
|---|---|
| GitHub Copilot uses the OpenAI Codex to suggest code and entire functions in real-time, right from your editor. | GitHub CopilotはOpenAI Codexを使用して、リアルタイムでコードと関数全体をエディタから提案します。 |
| Trained on billions of lines of code, GitHub Copilot turns natural language prompts into coding suggestions across dozens of languages. | 数十億行のコードで訓練されたGitHub Copilotは、自然言語のプロンプトを数十の言語にわたるコーディング提案に変換します。 |
| Don’t fly solo. Developers all over the world use GitHub Copilot to code faster, focus on business logic over boilerplate, and do what matters most: building great software. | 一人で飛行しないでください。世界中の開発者がGitHub Copilotを使用して、より速くコードを書き、ボイラープレートよりもビジネスロジックに集中し、最も重要なことをします:優れたソフトウェアを構築することです。 |
| Focus on solving bigger problems. Spend less time creating boilerplate and repetitive code patterns, and more time on what matters: building great software. Write a comment describing the logic you want and GitHub Copilot will immediately suggest code to implement the solution. | より大きな問題の解決に集中。ボイラープレートと反復的なコードパターンの作成に費やす時間を減らし、重要なことに費やす時間を増やす:優れたソフトウェアの構築です。欲しいロジックを記述したコメントを書き、GitHub Copilotはすぐにソリューションを実装するコードを提案します。 |
| Get AI-based suggestions, just for you. GitHub Copilot shares recommendations based on the project’s context and style conventions. Quickly cycle through lines of code, complete function suggestions, and decide which to accept, reject, or edit. | AIベースの提案を獲得、あなた専用です。GitHub Copilotはプロジェクトのコンテキストとスタイル規約に基づいて推奨を共有します。コード行を素早くサイクルし、関数提案を完了し、どの提案を受け入れ、拒否、または編集するかを決定します。 |
| Code confidently in unfamiliar territory. Whether you’re working in a new language or framework, or just learning to code, GitHub Copilot can help you find your way. Tackle a bug, or learn how to use a new framework without spending most of your time spelunking through the docs or searching the web. | 見知らぬ土地で自信を持ってコードを書く。新しい言語やフレームワークで作業しているか、ただコードを学んでいるかに関わらず、GitHub Copilotは道を見つけるのを助けます。大部分の時間をドキュメントやウェブ検索に費やすことなく、バグを解決したり、新しいフレームワークの使い方を学んだりできます。 |
これらの翻訳はすべてCopilotが生成したもので、これらの提案がモデル生成に基づくのか、翻訳行為に基づくのかは確定できません。実際に表のen列に書く英語の内容は、Copilotがzh列の内容に翻訳(生成)できます。

設定項目
クライアント設定項目
| 設定項目 | 説明 | 備考 |
|---|---|---|
| temperature | サンプリング温度 | 0.0 - 1.0, 0.0は最も一般的なコードスニペットを生成、1.0は最も一般的でないよりランダムなコードスニペットを生成 |
| length | 生成コード提案の最大長 | デフォルト500 |
| inlineSuggestCount | 生成行内提案の数 | デフォルト3 |
| listCount | 生成提案の数 | デフォルト10 |
| top_p | 確率上位Nの提案を優先表示 | デフォルトで全ての可能な提案を表示 |
個人アカウント設定には2つの設定があり、1つは著作権関連、もう1つはプライバシー関連です。
- オープンソースコードを使用して提案を提供するかどうか、Copilot生成コードスニペットの著作権問題を回避し、オープンソースライセンスの制限を避けるために主に使用。
- 個人のコードスニペットを使用して製品を改善することを許可するかどうか、プライバシー漏洩リスクを回避するために使用。
データセキュリティ
Copilotの情報収集
- 商用版
- 機能使用情報、個人情報が含まれる可能性がある
- コードスニペットを収集、提案提供後すぐに破棄、コードスニペットを一切保存しない
- データ共有、GitHub、Microsoft、OpenAI
- 個人版
- 機能使用情報、個人情報が含まれる可能性がある
- コードスニペットを収集、提案提供後、個人のtelemetry設定に基づき、保存または破棄
- コードスニペットは、編集中のコード、関連ファイル、IDEで開いているファイル、ライブラリURL、ファイルパスを含む
- データ共有、GitHub、Microsoft、OpenAI
- コードデータ保護、1. 暗号化。2. CopilotチームのGitHub/OpenAIの関連従業員のみが閲覧可。3. アクセス時はロールベースのアクセス制御と多要素認証が必要
- コードスニペットが使用(保存または訓練)されないようにする、1. 設定 2. Copilotチームに連絡
- プライベートコードが使用されますか? いいえ。
- 個人情報(氏名、誕生日など)が出力されますか? 稀で、まだ改善中です。
- 詳細プライバシーポリシー
よくある質問
- Copilotの訓練データはどこから来ていますか? GitHubの公開リポジトリからです。
- Copilotが書くコードは完璧ですか? そうとは限りません。
- 新しいプラットフォーム向けにコードを書くことができますか? 一時的に能力は限られています。
- Copilotをより良く使用する方法は? コードを小さな関数に分割、自然言語で関数の機能と入出力を記述、具体的な意味を持つ変数名と関数名を使用。
- Copilotが生成したコードにはバグがありますか? 当然回避できません。
- Copilotが生成したコードは直接使用できますか? そうとは限りません、時には修正が必要です。
- Copilotが生成したコードは商用プロジェクトに使用できますか? はい。
- Copilotが生成したコードはCopilotの知的財産権に属しますか? いいえ。
- Copilotは訓練セットからコードをコピーしていますか? Copilotはコードをコピーしませんが、極めて低い確率で訓練セットと一致する150行以上のコードが出現することがあります。以下2つの状況で発生します。
- コンテキスト情報が非常に少ないとき
- 一般的な問題の解決策であるとき
- 公開コードと重複しないようにするには? filterを設定

- Copilotが生成したコードを正しく使用するには? 1. 自ら生成コードをテスト/検査。2. 検査前に自動コンパイルや実行を行わない。
- Copilotはすべての自然言語で同じ表現を持ちますか? 最適表現は英語です。
- Copilotは攻撃的な内容を生成しますか? フィルタリング済みですが、出現する可能性は除外できません。














