カーソル行のPull Requestをブラウザで開くプラグインgit-trace.nvimを作った
git-trace.nvim というNeovimプラグインを作った。
inari111/git-trace.nvim
A Neovim plugin to jump from `git blame` to the pull request. Open PRs and files on GitHub
経緯
開発環境現状確認 (2026年1月版) - inari111 blog で書いた通り、GoLandからNeovimに乗り換え、メインで使っている。
GoLandでは Find Pull Request というプラグインを使用しており、GoLand上からPull RequestのURLをブラウザで開いていた。
チームで開発していると「ここのコードはどういう意図で追加されたんだろう?」と思うことがあり、使うことが多かった。
Neovimで開発していてもわざわざGoLandを起動し、Find Pull Requestを使ってPRを開いていたが、このままでは完全移行できそうにないなと思い、このプラグインを作るに至った。
git-trace.nvim について
⚠️ gh CLIをインストールしている必要がある
機能はシンプルで以下の通り。
:GitTracePR- カーソル行のPRをブラウザで開く
:GitTracePRCopy- カーソル行のPRのURLをクリップボードにコピー
:GitTraceOpen- カーソル行をブラウザで開く
:'<,'>GitTraceOpen- ビジュアルモードで行範囲を選択し、ブラウザで開く
- GitHubのパーマリンクが開き、指定した行範囲がハイライト表示される(例:#L10-L20)。
- ビジュアルモードで行範囲を選択し、ブラウザで開く
開発はすべてClaude Codeで行った。
インストール
{
"inari111/git-trace.nvim",
cmd = { "GitTracePR", "GitTracePRCopy", "GitTraceOpen" },
keys = {
{ "<leader>gp", "<cmd>GitTracePR<cr>", desc = "Open PR for current line" },
{ "<leader>gy", "<cmd>GitTracePRCopy<cr>", desc = "Copy PR URL for current line" },
{ "<leader>go", "<cmd>GitTraceOpen<cr>", mode = "n", desc = "Open file on GitHub" },
{ "<leader>go", ":'<,'>GitTraceOpen<cr>", mode = "v", desc = "Open selection on GitHub" },
},
config = function()
require("git-trace").setup()
end,
}
おわりに
欲しいものをシュッと作れるのはなかなか楽しい。
inari111/git-trace.nvim
A Neovim plugin to jump from `git blame` to the pull request. Open PRs and files on GitHub