gitlineage.nvim — 選択行のGit履歴を可視化するNeovimプラグイン

Tool

概要

gitlineage.nvim は、Neovim で編集中のファイルに対してビジュアルモードで選択した行範囲の履歴(誰がいつどのようにその行を書き換えたか)を手軽に確認できるプラグインです。内部では git の機能(git log -L)を用いて行単位の履歴を取得し、取得したコミット一覧を Neovim 内でナビゲートできます。コミット間の切り替え、SHA のヤンク、そして diffview.nvim があれば差分の詳細表示も可能で、ローカルでのコード調査や履歴理解に便利です。

GitHub

リポジトリの統計情報

  • スター数: 8
  • フォーク数: 0
  • ウォッチャー数: 8
  • コミット数: 9
  • ファイル数: 5
  • メインの言語: Lua

主な特徴

  • ビジュアルモードで選択した行範囲の履歴を git log -L で取得して表示
  • コミット間を移動してどの時点でどう変わったかを追跡可能
  • 表示されたコミットからSHAをヤンク、diffview.nvim経由でフル差分を開ける
  • 既存のキーバインディングはカスタマイズ可能で Neovim のワークフローに馴染む

技術的なポイント

gitlineage.nvim の要は「行単位の履歴取得」と「Neovim での表示・操作体験」の統合です。選択範囲(開始行と終了行)とファイルパスをもとに git log -L ‘start,end:filepath’ を実行し、Git が返す出力をパースしてコミット一覧と各コミットのヘッダ/差分情報を抽出します。プラグイン本体は Lua と Neovim の API を使って実装されており、外部プロセス(git)呼び出しの結果を非同期に受け取ってバッファやウィンドウに描画します。ユーザーは一覧画面で上下移動してコミットを選び、選択されたコミットのSHAをヤンクしたり、diffview.nvim がインストールされていればそのコミット間のフル差分を表示させられます。設計上、既存の Neovim ワークフローに馴染むようキーマッピングが用意され、必要に応じてカスタマイズ可能です。また、ドキュメントは doc ディレクトリにまとめられており、導入と利用方法が分かりやすく整理されています。依存は最小限に抑えられており、git が利用でき、(差分表示を拡張するなら)diffview.nvim があれば連携が可能です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitignore: file
  • LICENSE: file
  • README.md: file
  • doc: dir
  • lua: dir

まとめ

選択行の履歴追跡を素早く行える、シンプルで実用的な Neovim プラグイン。

リポジトリ情報: