WSL2のVimにCopilotを導入する方法

Tips

はじめに

WSL2上のVimにGitHub Copilotを導入しようとした際、認証まわりでつまずきました。 同じ問題に遭遇された方の参考になればと思い、解決策をまとめます。

インストール

copilot.vim のREADMEに従い、以下のコマンドでプラグインをインストールします。

git clone --depth=1 https://github.com/github/copilot.vim.git \
  ~/.vim/pack/github/start/copilot.vim

インストール後、Vimを起動して :Copilot setup を実行すると、ブラウザでGitHub認証を行う画面が表示されます。

発生した問題

ブラウザ側で認証を完了したあと、Vimに戻っても認証が一向に完了しませんでした。 GitHubのコミュニティを調べたところ、同様の問題に遭遇しているユーザーが複数いることがわかりました。

Copilot in neovim gets stuck in setup/auth · community · Discussion #50263
Select Topic Area Bug Body I'm using neovim 0.8.2 in Ubuntu 22.04.1 LTS running in WSL in Windows 11. I've installed a v...

WSL2環境特有の問題のようで、WSL2側から直接認証を通すのは難しい状況です。

解決策:Windows側で認証してトークンをコピーする

WSL2側で認証が通らない場合、Windows側のVimで認証を済ませ、生成されたトークンファイルをWSL2側にコピーすることで解決できます。

1. Windows側にScoopをインストールする

今回はWindows側のVimをScoopでインストールして認証を行います。 PowerShellを開き、以下のコマンドを実行します。

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression

2. VimとNode.jsをインストールする

Copilot VimはNode.jsに依存しているため、以下のコマンドでVimとNode.jsをインストールします。

scoop install vim
scoop bucket add main
scoop install main/nodejs-lts

3. Windows側のVimで認証する

Windows側のVimを起動し、:Copilot setup を実行します。 ブラウザが開くのでGitHubアカウントで認証を完了します。

4. トークンファイルをWSL2側にコピーする

認証が完了すると、Windows側の以下のパスにトークンファイルが生成されます。

C:\Users\<ユーザー名>\AppData\Local\github-copilot\apps.json

このファイルをWSL2側の ~/.config/github-copilot/apps.json にコピーします。

mkdir -p ~/.config/github-copilot
cp /mnt/c/Users/<ユーザー>/AppData/Local/github-copilot/apps.json \
  ~/.config/github-copilot/apps.json

5. WSL2側で動作確認する

WSL2側のVimを起動し、:Copilot status を実行します。 認証済みのステータスが表示されれば完了です。

まとめ

WSL2上のVimでCopilotの認証が通らない場合は、Windows側で認証を済ませてトークンファイルをコピーすることで解決できます。 同じ問題で困っている方の参考になれば幸いです。

コメント

タイトルとURLをコピーしました