@ryoppippi

CopilotChatとNeovimでGitの効率を上げる

10 Jun 2024 ・ 3 min read


Note

この​記事はVim 駅伝の​ 6/10 の​記事です。

Lazygitで​Commit Messageを​作成する

最近​Git Commit MessageをCopilotChat.nvimに​生成して​もらっているのですが、​その際の​便利設定を​紹介します。

CopilotChat.nvimに​ついて​詳しくは​以下の​記事を​参照してください。 https://zenn.dev/nabekou29/articles/neovim-lazygit-commit-message

https://github.com/ryoppippi/dotfiles/blob/122370847176e62b17dc6c216a4488226e9cf075/nvim/after/ftplugin/gitcommit.lua#L99-L110

これは​何を​しているかと​いうと

  • ftplugin/gitcommit.luaCopilotChatの​設定を​追加
  • gitcommitの​バッファが​開かれた​時にCopilotChatを​自動で​起動

こうしておく​ことで

  • shell commandでgit commitを​実行すると​Neovimが​立ち上がる
  • CopilotChatが​自動で​起動して​Commit Messageを​生成してくれる
  • c-yで​生成された​Commit Messageを​Bufferに​貼り付ける。​気に入らなかったら​ <leader>cで​再生成
  • :qqで​Bufferの​保存と​Neovimの​終了を​する。​Commitが​作成される

と​いう​流れで​Gitの​効率を​上げる​ことができます。

また​以前​書いた​記事では、git commitで​Neovimが​立ち上がる​時に​一緒に​git hooksを​実行してくれるように​しています。 こちらと​合わせて​使うと​便利でしょう。

/blog/2023-08-16-zenn-3b5125f9e06bf9-ja

git diffから​Pull Requestの​コメントを​作成する

Pull Request(以下​PR)の​文章も​楽に​生成させたいですよね。

そんな​ときは​以下のように​すると​とても​便利です。

用意するのは

です。

まず、ghで​PRを​作成します。

gh pr create --title "PR Title"

すると、​bodyを​入力する​ために​Neovimが​立ち上がる​ことでしょう。

ここで

:GinDiff main

と​すると、​mainブランチとの​差分が​表示されます。

これを​全て​選択して

:'<,'>CopilotChat generate PR desc from this diff to the main

を​実行すると、​差分から​PRの​文章を​生成してくれます。

0.png

これを​yankして​PR bodyの​Bufferに​貼り付け、​修正が​必要な​部分を​修正して、​Neovimを​閉じると​PRが​作成されます。 とっても​楽ですね!

もしGinを​使わない​場合は

:new
:r! git diff main

で​差分を​vimに​取り込めるので、​同様にCopilotChatを​使って​PRの​文章を​生成できます。

まとめ

CopilotChat便利

comment on bluesky / twitter
CC BY-NC-SA 4.0 2022-PRESENT © ryoppippi