【Mac】neovimでChatGPTと会話する

5 min

こんにちは。ナミレリです。今回はnvimで使うChatGPTのプラグインである、ChatGPT.nvimを試してみたので紹介します。ChatGPT.nvimを使うとnvimから:ChatGPTで呼び出すことができ、リアルタイムにChatGPTと会話することができます

ChatGTP.nvim
ChatGTP.nvim

この記事はこんな人にオススメ

  • nvimでChatGPTを使いたい
  • CLI派でなるべくnvimから離れたくない
  • nvimが大好きで仕方ない
  • VSCodeよりnvim派!
この記事のMac環境
  • M2 MacBook Air 13.6 インチ
  • M1 Max MacBook Pro 14インチ
  • macOS Ventura 13.2.1
  • NVIM v0.9.0-dev-1244+gc6f8af36e-dirty
ChatGPT APIを使う

ついに3月1日(米国時間)に、OpenAIから「ChatGPT」のAPIがリリースされました。APIを通じて「ChatGPT」(gpt-3.5-turbo)にPythonでアクセスする方法を紹介しています。

はじめに

私のneovim環境は、brewneovimHAEDをインストールして使っています。通常のneovimのバージョンは0.8.3ですが、いつくか動作しないプラグインもあるのでバージョン0.9を使っています。

今回は、ChatGPT.nvimの紹介をメインとして、nvimの環境や細かな設定は省きまして別の機会で紹介できればと思っています。

neovimのHEADをインストール

今回はbrewneovimの最新のHEADをインストールします。

HEADは安定版のneovimではないので自己責任でインストールしてください。

通常のneovimがインストールされている場合はuninstallします。


brew uninstall neovim

下のコマンドでneovimHEADをインストールします。


brew install neovim --HEAD

以降、最新のHEADにするには、下のようにreinstallします。


brew reinstall neovim

インストールしたneovimのバージョンを確認しておきます。


nvim --version
NVIM v0.9.0-dev-1244+gc6f8af36e-dirty
Build type: Release
LuaJIT 2.1.0-beta3

      システム vimrc: "$VIM/sysinit.vim"
       省略時の $VIM: "/opt/homebrew/Cellar/neovim/HEAD-c6f8af3/share/nvim"

Run :checkhealth for more info

事前準備

curlの確認

プラグインのインストールにはcurlが必要ですのでインストールされているか確認します。Macであれば標準でcurlはインストールされています。


which curl
/usr/bin/curl

$OPENAI_API_KEYの確認

openaiのサイトからAPIキーを取得します。ここから取得します。

取得したAPIキーは、他の人と共有したりPythonコード(ブラウザ、アプリ等)で公開してしまうのはNGです。漏洩のリスクを軽減するために環境変数に設定しておきますOPENAI_API_KEYという環境変数に設定します。

YOUR_API_KEYの部分に実際に取得したAPIキーを置き換えてください。


export OPENAI_API_KEY="YOUR_API_KEY"

.zshrcに設定しておく場合も漏洩には十分に注意する必要があります。

APIキーはここから取得します。https://platform.openai.com/account/api-keys

ChatGPT.nvimのインストール

では、早速、ChatGPT.nvimを公式の通りにインストールしてみます。

パッケージマネージャはPackerを使っていますので、~/.config/nvim/lua/plugins.luaに下の内容を追加します。


-- Packer
use({
  "jackMort/ChatGPT.nvim",
    config = function()
      require("chatgpt").setup({
        -- optional configuration
      })
    end,
    requires = {
      "MunifTanjim/nui.nvim",
      "nvim-lua/plenary.nvim",
      "nvim-telescope/telescope.nvim"
    }
})

nvimを起動して:PackerInstallでインストールしてくれます。

nvimを起動して:PackerInstall

デフォルトのモデルはgpt-3.5-turboになっています。デフォルトの設定の詳しくはこちらに詳しく記載があります。

https://github.com/jackMort/ChatGPT.nvim#configuration

ChatGPT.nvimの使い方

それでは、ChatGPT.nvimを使ってみます。

ChatGPT.nvimの起動

nvimを起動して:ChatGPTで使えるようになっていると思います。

ChatGPT.nvimを起動する

nvimを起動して:ChatGPT
nvimを起動して:ChatGPT

ChatGPT.nvimの起動した画面

nvimを起動して:ChatGPT
nvimを起動して:ChatGPT

送信する方法:<C-Enter>

まず覚えておきたいショートカットキーは、送信ですね。送信は<C-Enter>です。

プロンプトの入力はiでインサートモードにして普通に入力して、送信は<C-Enter>です。

Control + Enter(<C-Enter>でプロンプトを送信します。

ChatGPT.nvimの終了する方法:<C-c>

次に覚えておきたいショートカットキーは、終了です。終了するには<C-c>です。

Control + c(<C-c>でChatGPT.nvimを終了します。

設定ウィンドウとセッションウインドウの表示:<C-o>

設定状態やセッションを確認する場合は、<C-o>で下のようにウィンドウが表示されます。

modelgpt-3.5-turboが設定されていて、max_tokensが300であることがわかります。

<Tab>でウィンドウ間を移動でき、セッションの選択は該当セッションに移動して、<space>で選択することができます。

デフォルトのキーバインド一覧

キー説明
<C-Enter>送信する
<C-c>閉じる
<C-u>上にスクロール
<C-d>下にスクロール
<C-y>回答をヤンク
<C-k>回答のコードをヤンク
<C-o>設定ウィンドウを表示
<C-n>新しいセッションを開始
<Tab>ウィンドウ間を移動
<C-i>ウィンドウの編集
ChatGPT.nvim:デフォルトのキーバインド

デフォルトの設定

デフォルトの設定も公式に詳しく記載されていいます。


{
  welcome_message = WELCOME_MESSAGE,
  loading_text = "loading",
  question_sign = "", -- you can use emoji if you want e.g. 🙂
  answer_sign = "ﮧ", -- 🤖
  max_line_length = 120,
  yank_register = "+",
  chat_layout = {
    relative = "editor",
    position = "50%",
    size = {
      height = "80%",
      width = "80%",
    },
  },
  settings_window = {
    border = {
      style = "rounded",
      text = {
        top = " Settings ",
      },
    },
  },
  chat_window = {
    filetype = "chatgpt",
    border = {
      highlight = "FloatBorder",
      style = "rounded",
      text = {
        top = " ChatGPT ",
      },
    },
  },
  chat_input = {
    prompt = "  ",
    border = {
      highlight = "FloatBorder",
      style = "rounded",
      text = {
        top_align = "center",
        top = " Prompt ",
      },
    },
  },
  openai_params = {
    model = "gpt-3.5-turbo",
    frequency_penalty = 0,
    presence_penalty = 0,
    max_tokens = 300,
    temperature = 0,
    top_p = 1,
    n = 1,
  },
  openai_edit_params = {
    model = "code-davinci-edit-001",
    temperature = 0,
    top_p = 1,
    n = 1,
  },
  keymaps = {
    close = { "" },
    submit = "",
    yank_last = "",
    yank_last_code = "",
    scroll_up = "",
    scroll_down = "",
    toggle_settings = "",
    new_session = "",
    cycle_windows = "",
    -- in the Sessions pane
    select_session = "",
    rename_session = "r",
    delete_session = "d",
  },
}

最後に

最後まで読んでいただきありがとうございます。今回の【Mac】neovimでChatGPTと会話するはいかがでしたでしょうか。

普段からneovimを使っている方にとって、ChatGPT.nvimは遊んでみたくなるプラグインです。これでまたしばらくnvimから離れない生活できますね。

ChatGPT関連の別の記事

neovimでChatGPT

PythonでChatGPTのAPI

MacでChatGPT

MacでChatGPT

VSCodeでChatGPT

LinuxのターミナルからChatGPT

PythonでGPT-3

カテゴリー:
関連記事