vim-merginal は、Vim ユーザーがエディタ内で直接 Git ブランチを管理できるプラグインです。tpope 氏の有名な Fugitive.vim の拡張として、Vim でのブランチ操作の空白を埋めます。

プロジェクト概要

属性内容
GitHubidanarye/vim-merginal
Stars278
言語Vim Script
特徴Fugitive 拡張、ブランチ管理、マージコンフリクト解決
最終更新4ヶ月前

解決する課題

Vim で開発しているとき、Git ブランチ管理は通常ターミナルに切り替えて git branchgit checkout などのコマンドを実行する必要があります。このコンテキスト切り替えは編集フローを中断します。vim-merginal を使えば、Vim 内ですべてのブランチ操作を完了でき、開発状態の連続性を保てます。

コア機能

ブランチリストビュー

  • インタラクティブなブランチリストを開く :Merginal
  • ローカルとリモートブランチを表示
  • ブランチ名での検索フィルタリング

ブランチ操作

  • cc - ブランチをチェックアウト
  • C - 新しいブランチを作成
  • D - ブランチを削除
  • m - ブランチをマージ
  • r - ブランチを Rebase
  • R - ブランチ名を変更

マージコンフリクト解決

  • コンフリクトファイルを直感的に表示
  • コンフリクト位置に素早くジャンプ
  • コンフリクト解決済みとしてマーク

Fugitive との深い統合

  • Fugitive のすべての利点を継承
  • 統一された Git ワークフロー
  • 新しいキーマップ体系を学ぶ必要なし

クイックスタート

プラグインマネージャーでインストール:

" vim-plug
Plug 'tpope/vim-fugitive'
Plug 'idanarye/vim-merginal'

" Vundle
Plugin 'tpope/vim-fugitive'
Plugin 'idanarye/vim-merginal'

よく使うコマンド:

" ブランチマネージャーを開く
:Merginal

" ブランチマネージャーを開いて現在のブランチに切り替え
:MerginalToggle

" サイドバーで開く
:MerginalSplit

比較分析

ツールStars特徴
vim-fugitive20k+万能 Git プラグインだがブランチ管理が直感的でない
vim-gitgutter8k+ファイル変更通知に特化
lazygit58k+ターミナル UI ツール、ウィンドウ切り替えが必要
vim-merginal278Vim 内ネイティブ体験、Fugitive と完璧に連携

ユースケース

推奨:

  • ヘビー Vim/Neovim ユーザー
  • すでに Fugitive を使用している開発者
  • エディタ内ですべての Git 操作を完了させたい人
  • 頻繁にブランチを切り替えたりマージしたりする開発者

あまり向かない:

  • VS Code などのグラフィカルエディターを使用しているユーザー
  • 独立した Git クライアント(Fork、SourceTree など)を好む開発者
  • ブランチを頻繁に操作する必要がないシンプルなプロジェクト

使用のヒント

  1. キーマップの設定:MerginalToggle に便利なショートカットを設定

    nnoremap <leader>b :MerginalToggle<CR>
  2. Fugitive の :G コマンドと併用:ブランチマネージャーとファイルステータスビューを素早く切り替え

  3. ? でヘルプを表示:ブランチマネージャー内で ? を押すと利用可能なすべてのショートカットが表示される

注意事項

  • Fugitive を先にインストールする必要があります。vim-merginal はその Git 統合基盤に依存しています
  • 一部の高度な機能(インタラクティブ rebase など)はターミナルで実行することを推奨
  • Neovim ユーザーは問題なく使用できます。完全に互換性があります

まとめ

vim-merginal は、Vim で Git ブランチをネイティブかつ直感的に管理できるという非常に具体的な空白を埋めます。Fugitive を置き換えるものではなく、それと連携して Git ワークフローをより完全なものにします。毎日 Vim とターミナルを行き来してブランチ処理をしているなら、このプラグインは試す価値があります。

属性内容
リポジトリhttps://github.com/idanarye/vim-merginal
ライセンス未指定
言語Vim Script
メンテナー@idanarye