gitlineage.nvim — 選択行のGit履歴を可視化するNeovimプラグイン
概要
gitlineage.nvim は、Neovim で編集中のファイルに対してビジュアルモードで選択した行範囲の履歴(誰がいつどのようにその行を書き換えたか)を手軽に確認できるプラグインです。内部では git の機能(git log -L)を用いて行単位の履歴を取得し、取得したコミット一覧を Neovim 内でナビゲートできます。コミット間の切り替え、SHA のヤンク、そして diffview.nvim があれば差分の詳細表示も可能で、ローカルでのコード調査や履歴理解に便利です。
リポジトリの統計情報
- スター数: 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 プラグイン。
リポジトリ情報:
- 名前: gitlineage.nvim
- 説明: Neovim plugin to view git history for selected lines. Select a range in visual mode and see how it evolved through commits. Navigate commits, yank SHAs, and open full diffs with diffview.nvim.
- スター数: 8
- 言語: Lua
- URL: https://github.com/LionyxML/gitlineage.nvim
- オーナー: LionyxML
- アバター: https://avatars.githubusercontent.com/u/16169950?v=4