注意⚠️
2023年 5月 3日時点での導入方法を記した記事になります。
個人での開発において、Github Copilot を試した記事になります。
商用利用の際には、所属する会社や所属部署で、Github Copilot の使用許可・規則があるか、事前にご確認ください。
Copilot.vim
Copilot.vim は、コードの自動補完機能である 「Github Copilot」 を Vim で使うためのプラグインです。
作者は、 vim-fugitive や vim-surround で有名な tpope さんです。
入力時に候補が出てくるので、Tab を押すと実際に入力されます。
コミットメッセージも作ってくれたりするようです。(未確認です。)
導入した結果、each 文といった構文をサラッと補完してくれるので、とても便利に感じています。
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 に対応しているのか不明です。)
余談
山の写真です。
初秋の薬師岳
チングルマ
チングルマの綿毛と奥に三俣蓮華岳
山本 哲也 (記事一覧)
カスタマーサクセス部のエンジニア。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 やりたいです。
基本的にのんびりした性格です。座右の銘は「いつか着く」