LoginSignup
0
0

vim/neovimで動くchatgptクライアントを作りなおした

Posted at

申し訳ありません

と、どうせ居ないであろうユーザーの人に謝っておきます。
このvim pluginを大幅に書き直して、破壊的に更新しました。

何がいけなかったのか

前書いたのは、とりあえずchatgptとお話するぶんには便利でした。しかし、徐々に僕の中でこういう声が聞こえてきました。

  • 👶「テンプレートくらい使わせろ」
  • 👶「お前は毎回『お世話になっております』ってchatgptに言うのか?」
  • 👶「ていうか、バグ多すぎ死ね!」
  • 👶「関数多すぎ、名前空間汚しすぎ死ね!」
  • 👶「お前はopenai以外は使わないのか?ラマやアルパカは?🐴」
  • 👶「ninco.vimの作者は暗いから話しかけるのやめとこう」

大幅に改善したが…

上記に対策を立てました。

テンプレート、openai以外を使う機能を追加しました。
バグも前よりは少ないです。また、グローバルな関数を減らしました。
これにより、以前に比べてずっと良くなりました。

ですが、その過程で、UIが破壊的に更新されてしまいました(´・ω・`)

使い方

雰囲気的にはこんな感じ。API_KEYはopenaiを使うときだけに必要。自宅GPUサーバー持っている人はurlでそれを指定すればよろしい。
あとは…下記のようにvimrcを書くと\dの後にgnってやればプロンプト出てきて、無事に使えるはず。visual modeでも。
手元では使えている。llamaで立てたopenai互換ローカルサーバーも含めて。

let g:ninco#single_mode = 1
let g:api_key = "[API_KEY]"
let g:ninco#gpt_model = "gpt-3.5-turbo"
let g:ninco#gpt_url = "https://api.openai.com/v1/chat/completions"

nnoremap <leader>d :call NincoEnableWindow(g:api_key, g:ninco#gpt_model, g:ninco#gpt_url)<CR>
nnoremap <leader>c :call NincoEnable(g:api_key, g:ninco#gpt_model, g:ninco#gpt_url)<CR>

" Compress log
nnoremap gc :call NincoCompress(5)

" Normal mode
nnoremap gn :call Ninco("", "")<C-F>04f"<C-C>

" Visual mode
vnoremap gn :<C-E><C-U>call Ninco("", "", GetVisualSelection())<C-F>04f"<C-C>

反省だけなら猿でも出来る🐵

まず、vim pluginを作るときにはUIを定めような!
とはいえ、僕しか使ってないと思うから良いんだけど!

感想

自分でダメ出ししておいて言いますが、僕は使います。
あと、vimのdoc書くの面倒臭すぎて死ぬ。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0