Github Copilot を Vim で使うためのプラグイン「Copilot.vim」 を導入する。

記事タイトルとURLをコピーする

注意⚠️

2023年 5月 3日時点での導入方法を記した記事になります。
個人での開発において、Github Copilot を試した記事になります。
商用利用の際には、所属する会社や所属部署で、Github Copilot の使用許可・規則があるか、事前にご確認ください。

Copilot.vim

Copilot.vim は、コードの自動補完機能である 「Github Copilot」 を Vim で使うためのプラグインです。
作者は、 vim-fugitive や vim-surround で有名な tpope さんです。
入力時に候補が出てくるので、Tab を押すと実際に入力されます。
コミットメッセージも作ってくれたりするようです。(未確認です。)
導入した結果、each 文といった構文をサラッと補完してくれるので、とても便利に感じています。

gif


Copilot.vim の導入

前提としまして、筆者の環境は、M2 Macbook Pro で、デフォルトシェルは fish となっています。本記事は左記の前提で手順を載せます。
zsh の場合も概ね同じです。

サブスクリプション

「Github Copilot」を使用するためには、事前にサブスクリプションが必要です。
手順:
https://docs.github.com/ja/billing/managing-billing-for-github-copilot/managing-your-github-copilot-subscription-for-your-personal-account

上のリンクの手順に従って操作すると、開始ボタンがあります。

最初の30日は無料、その後は 月 10ドルとのことです。

Copilot によるサジェストだけでなく、Github 上の公開コードからも自動補完するかを、選べます。

サブスクライブできました。

最新の vim をインストール

Copilot.vim を使用するには、vim が 9.0.0185以降である必要があります。
まずは 最新の vim をインストールします。 Mac の場合は brew です。

brew install vim

参考: https://github.com/vim/vim/blob/master/READMEdir/README_mac.txt

以下の場所に vim が入りました。

/opt/homebrew/Cellar/vim/9.0.1450/bin/vim

パスを通します。
fish の設定ファイルを編集します。 (zsh の場合は、.zprofile になります。)

  • ~/.config/fish/config.fish
if status is-interactive
    # Commands to run in interactive sessions can go here
end
fish_add_path /opt/homebrew/bin
fish_add_path /opt/homebrew/Cellar/vim/9.0.1450/bin #追加

vim のバージョンが最新になりました。

Node.js のインストール

Copilot.vim を使用するには、Node.js が必要です。
参考:https://nodejs.org/en/download
.pkg 形式のインストーラを使い、インストールできました。

インストール先の「/usr/local/bin」 にパスが通っているか確認します。
通っていました。

node, npm のパスとバージョンを確認しておきます。

Copilot.vim のインストール

以下コマンドを実行します。

git clone https://github.com/github/copilot.vim.git \
  ~/.vim/pack/github/start/copilot.vim

vim で以下のコマンドを実行します。

:Copilot setup

ワンタイムコードが出ますので控えて Enter を押します。

WEBブラウザが開き、 Github との連携を認証する画面が出ます。Authorize〜を押して承認します。

連携できました というメッセージが出ます。

以下のコマンドで状態を確認します。

:Copilot status

利用可能になったようです。

補足

filetype を設定していないと、補完してくれません。ご注意ください。

サインアウトする際には、以下のコマンドで可能です。

:Copilot signout

再ログインする際には、再び setup コマンドの出番です。

:Copilot setup

まとめ

Copilot.vim を入れてみました。
エディタで Tab を押す機会が増えました。

AWS にも同様のサービスがあるのでお試ししてみようと思っています。(Vim に対応しているのか不明です。)

aws.amazon.com

余談

山の写真です。
初秋の薬師岳

チングルマ

チングルマの綿毛と奥に三俣蓮華岳

山本 哲也 (記事一覧)

カスタマーサクセス部のエンジニア。2024 Japan AWS Top Engineers に選んでもらいました。

今年の目標は Advanced Networking – Specialty と Machine Learning - Specialty を取得することです。

山を走るのが趣味です。今年の目標は 100 km と 100 mile を完走することです。 100 km は Gran Trail みなかみで完走しました。OSJ koumi 100 で 100 mile 砕け散りました。どこかで 100 mile やりたいです。

基本的にのんびりした性格です。座右の銘は「いつか着く」