Note

ChatGPT.nvimというNvimプラグインを導入してプロンプトライフを満喫する

導入

LazyNvimをパッケージマネージャとして導入しているので、chat-gpt.luapluginsフォルダ配下に作成し、以下のようにプラグインを読み込む

return {
  {
    "jackMort/ChatGPT.nvim",
    event = "VeryLazy",
    config = function()
      require("chatgpt").setup {}
    end,
    dependencies = {
      "MunifTanjim/nui.nvim",
      "nvim-lua/plenary.nvim",
      "folke/trouble.nvim",
      "nvim-telescope/telescope.nvim",
    },
  },
}

APIの設定

Nvim内からアクセスできるようにOpenAIのアクセストークンを読み込む設定を行う。api_key_cmdというパラメータがsetup内で利用できるので、こちらにsetup時にOpenAIのアクセストークンを読み込むコマンドを設定してあげる。

今回は1Passwordを新たに導入し、こちらで環境変数の管理を行うようにしたので1Password CLIを利用して、起動時にアクセストークンを読み込むコマンドを設定した。

アクセストークンはPersonal内にopen_aiという名前のSecure Noteを作成し、そちらにkey=tokenという形式で登録している

config = function() {
	require("chatgpt").setup {
	  api_key_cmd = "op read op://Personal/open_ai/key --no-newline",	
	}
}

以上を設定してNvimを起動するとChatGPTの各種コマンドが利用可能になる。 また開くたび1Passwordのアクセスリクエストの承認を求められるので以下を対応。

1Password CLIでのアクセスリクエスト認証を表示させない


1Passwordの認証が毎回面倒だったのでファイルから変数として読み込むように設定した。

export OPENAI_API_KEY=<value>
source "$HOME/.openai_key.zsh"
onfig = function() {
	require("chatgpt").setup {}
}

参考

NeoVimとChatGPTを使ってコードを改良する