copilot.vim

github/copilot.vim は vim/NeoVimでGitHub Copilotを使うためのプラグイン。

VisualStudio Codeと同様にGitHub Copilotによるコードの提案をvim/NeoVimでも受けられるようになる。

動作例

vimのバージョン

copilot.vimvimのバージョン9.0.0185以上で動作する。

セットアップ

Node.jsのインストール

Node.jsが必要なのでインストールしておく。

Macの場合はHomebrewでインストールできる。

$ brew install node

他のOSの場合は ダウンロード | Node.js より 最新版をダウンロードしてインストールする。

copilot.vimのインストール

copilot.vimをインストールするにはGitHub から cloneして~/.vim/pack/github/start/copilot.vimに配置する。

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

GitHubで認証する

vimを立ち上げて:Copilot setupコマンドを実行する。

Copilot setup

8桁のワンタイムコードが表示されるのでコピーしておく。

Enterキーを入力するとブラウザでGitHubの認証画面が開くのでコピーしておいたワンタイムコードを貼り付ける。

GitHub認証画面

Continueボタンをクリックすると連携の認証画面に遷移するのでAuthorize GitHub Copilot Pluginボタンをクリックする。

連携認証画面

正常に認証できれば以下のような画面が表示されればオーケー。

認証完了画面

使い方

セットアップに成功すればvimでコーディング中にグレーでコードが提案される。

提案はタブキーで受け入れる。

set pasteが有効だとタブで受け入れできない

手元の環境だと~/.vimrcset pasteを設定しているとタブキーで提案を受け入れられなかった。
GitHub Copilotの提案を受け入れるためにはset pasteの設定を削除する必要がある。

ファイルタイプに対してCopilotが有効かどうかの確認と対応方法

有効かどうかの確認(:Copilot status)

copilot.vimが提案しない場合、設定の必要な可能性がある。
現在の設定で開いているファイルに対してcopilot.vimが提案するかどうかは以下のコマンドで確認できる。

:Copilot status

例えばデフォルトではMarkdownファイル(*.md)は対応しておらず、上記コマンドで以下のメッセージが表示される。

Copilot: Disabled for filetype=markdown by internal default

有効で正常に動作する場合は以下のように表示される。

Copilot: Enabled and online

有効にする設定(g:copilot#filetypes)

有効なファイルタイプを追加するには.vimrcg:copilot#filetypesの設定を追加する。

let g:copilot_filetypes = {'markdown': v:true}

上記設定後Markdownのファイル(*.md)を開き直すとCopilotが有効となり、提案が表示されるようになる。

Markdown

複数のファイルタイプを設定する場合は以下のように記述する。

let g:copilot_filetypes = {
    \ 'markdown': v:true,
    \ 'yaml': v:true,
    \ 'xml': v:true,
    \ }