🤖

NeovimでGitHub Copilotを使ってみる

2023/04/22に公開

Neovimを使ってみるにてNeovimを利用する準備を整えました。

今回は、NeovimでGitHub Copilotを利用してみます。

前提

  • Neovimを使う
  • AstroNvimを使う
  • Node.jsはインストールされている

手順

まずはNeovimからGitHub Copilotを利用するためのプラグインを導入します。

ref: https://github.com/github/copilot.vim

.config/astronvim/lua/user/plugins/user.luaに下記を追記します。

{
  "github/copilot.vim",
  lazy=false,
},

追記したら、Neovimを起動します。起動するとプラグインのインストールが始まります。

nvim

copilot.vimがLazy.nvimでLoadedになっているかどうかを確認します。

:Lazy

Loadedにcopilot.vimが入っていれば読み込まれています。

セットアップしていきます。

:Copilot setup

を実行して、returnを押下するとブラウザで数字の入力画面が表示されるので、クリップボードに自動的に保存された数字をペーストします。

ご自身のアカウントでGitHub Copilotが有効になっていない場合は、有効化の手順が進むので案内に従います。

設定の完了を確認します。

:Copilot status
Copilot: Enabled and online

となれば、完了です。

:Copilot status
<Tab> map has been disabled or is claimed by another plugin

となる場合は、キーマッピングが衝突しており、設定が完了できていないです。

例えば.config/astronvim/lua/user/init.luaに下記のように追記してキーマッピングを変更します。もっと良い設定方法ありそうですが、あまり詳しくないのでこんな感じです。

polish = function()
  vim.g.copilot_no_tab_map = true
  vim.api.nvim_set_keymap("i", "<C-i>", 'copilot#Accept("<CR>")', { silent = true, expr = true })
end,

これで準備は整いました。

試しに閏年を判定する関数を提案してもらいます。

コメントでやりたいことを書いて、次の行でfuncと記述して少し待つと提案が出てくる感じでした。

GitHub Copilotをどう活用するかは別途試してみると良さそうですね。

まとめ

NeovimでGitHub Copilotの利用設定をしてみました。

NeovimやAstroNvimの構成やお作法に詳しくなく、あまり理解するモチベーションもない状態で進めてみました。

途中Lazy.nvimでプラグインが読み込まれず詰まったのと、:Copilot statusが有効にならずキーマッピングの衝突が原因であることを理解するまでに結構時間がかかりました。

Discussion