🥑

Neovimで使える無料AI補完(neocodeium)

2024/08/29に公開

はじめに

neocodeiumというものを見かけたので導入(乗り換え)してみました。
https://github.com/monkoose/neocodeium

今まで筆者が補完で使用していたのはこちら。
https://github.com/zbirenbaum/copilot.lua

環境

neovim 0.10+
neovimを開いた時にversionが0.10以上であればOKです。
この部分。

プラグインによっては最初にバージョン情報が表示されない場合もあるので以下のコマンドでneovimを起動してあげると確認できます。

neovim -u NONE

導入方法

lazy.nvimを使っている場合の例です。

  • neocodeium.lua
return {
  "monkoose/neocodeium",
  event = "VeryLazy",
  config = function()
    local neocodeium = require("neocodeium")
    neocodeium.setup()
    // 公式の例だと<A-f>にマッピングされていますが、<Tab>に変えてます。
    vim.keymap.set("i", "<Tab>", neocodeium.accept)
    // 複数候補ある場合に次の候補を表示
    vim.keymap.set("i", "<C-j>", function()
      neocodeium.cycle(1)
    end)
    // 前の候補を表示
    vim.keymap.set("i", "<C-k>", function()
      neocodeium.cycle(-1)
    end)
  end,
}

使用方法

Neovimのコマンドモードで以下を入力します。

:NeoCodeium auth

codeiumのサイトが開きますのでSign upから登録しましょう。(筆者はGoogleアカウントで登録しました。)

登録が完了したらトークンが発行されますので、Neovim上に貼り付ければOKです。

これだけで補完機能が使えます。

おわりに

無料っていいですね!!!!!速いし。
GPLライセンスコードをトレーニングに使用していないからGPLライセンス違反リスクも心配しなくてよさそう。
https://codeium.com/blog/copilot-trains-on-gpl-codeium-does-not
ちなみにcodeium.vimというものがもとになっているみたいですが、neocodeiumならデフォルトキーマッピングがないので、キーマップが汚れません。
ただ、neocodeiumはNeovimしか対応していないので、Vim使っている方だったりバージョンあげたくないよーって方はこちらどうぞ。
https://github.com/Exafunction/codeium.vim
Copilotのサブスク解約しようかな。

Discussion