最近になって Github Copilot を学生は無料で利用できるということを知り(いまさら……)学生の登録と Github Copilot の利用を開始しました.
学生が Github Copilot を無料で利用するための申請についてはこちらの記事を参考にさせて頂きました.
https://qiita.com/SNQ-2001/items/796dc5e794ac3f57a945 (SNQ-2001(たいしん)様)
ショートカットキーについてまとめている記事が少なかったため,自分用のメモとしてこちらにまとめておきたいと思います.なお,本記事はGitHub Copilot の概要をまとめたものになります.
項目 | コマンド | 説明 |
---|---|---|
コードの生成 | ctrl + Enter |
コメントに従ってコードの生成をおこなう |
インラインチャット | ctrl + i |
Github Copilot に会話形式でコードの生成を依頼できる |
候補の生成 | *** | コードの候補を生成してくれる |
候補に対する操作 | コマンド | 説明 |
---|---|---|
候補の受け入れ | tab |
提示された候補を受け入れる |
代替候補の表示 |
Alt + [ or Alt + ]
|
次の候補を表示 or 前の候補を表示 |
候補の部分的な受け入れ | ctrl + → |
表示された候補のうち,次の単語を受け入れる |
コードの生成
コメントに従ってコードを生成してくれます.コマンドはctrl + Enter
です.
# 素数をmax_numまで挙げていき,それらを格納したリストを返り値とする関数
上記のようなコメントに対して,ctrl + Enter
を実行すると下のような結果が得られました!
いくつかの候補が出てくるので,気に入ったコードのAccept Solution
を実行することでコードに反映されます.
インラインチャット
Github Coplilot に会話形式でコードの生成を依頼できます.コマンドはctrl + i
です.
いくつかの操作については既に特定のコマンドが用意されているようです.その呼び出しは/
でできます.今回は/doc
を試してみました.
関数のdocstringが自動で生成されました!
候補の生成
候補の生成には特に操作は必要ありません.ただコードを記述していくとそれに合わせて候補を生成してくれます.
候補に対する操作は下表の通りです.
候補に対する操作 | コマンド | 説明 |
---|---|---|
候補の受け入れ | tab |
提示された候補を受け入れる |
代替候補の表示 |
Alt + [ or Alt + ]
|
次の候補を表示 or 前の候補を表示 |
候補の部分的な受け入れ | ctrl + → |
表示された候補のうち,次の単語を受け入れる |
最後に
ここに紹介している以外にも便利なコマンドがあれば紹介頂けますと幸いです.
また,今回 Github Copilot に書いてもらったコードを掲示しておきます.
# 素数をmax_numまで挙げていき,それらを格納したリストを返り値とする関数
def make_prime_list(max_num):
"""
指定された範囲内の素数のリストを作成する関数。
Parameters:
max_num (int): 素数を探索する範囲の最大値。
Returns:
list: 範囲内の素数のリスト。
"""
prime_list = []
for num in range(2, max_num + 1):
for i in range(2, num):
if num % i == 0:
break
else:
prime_list.append(num)
return prime_list
def make_prime_list_v2(max_num):
prime_list = []
for num in range(2, max_num + 1):
for p in prime_list:
if num % p == 0:
break
else:
prime_list.append(num)
return prime_list
if __name__ == '__main__':
print(make_prime_list(100))
print(make_prime_list_v2(100))
出力結果は以下のようになります.
>> python3 test.py
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]