Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Git View

vig の中心となるビューです。ワーキングディレクトリと任意に選んだ base との サイドバイサイド diff を表示します。上部のペインとメインエリア:

  • Files — 変更ファイルのツリー。ステータス表示付き (A 追加、D 削除、M 変更、R リネーム、? 未追跡)。
  • Branches — ローカルブランチの一覧。選択中ブランチの git log プレビューがメインエリアに表示されます。
  • Reflog — リポジトリの reflog エントリ。
  • Diff / Git Log — メインエリア。シンタックスハイライト付きの サイドバイサイド diff、またはブランチ / reflog を眺めている間は log プレビュー。

このビューはワーキングディレクトリを監視し、ファイルが変わると diff を 自動更新します。r で手動更新、e で選択中のファイルを $EDITOR で 開けます。

ペイン間の移動

キー操作
Tab / Shift+Tabペイン切り替え: Files → Branches → Reflog → GitLog → Diff
h / l上部ペイン間の移動(Files, Branches, Reflog)
i上部ペインからメインペインへ移動(GitLog / Diff)
Escメインペインから直前の上部ペインへ戻る

ペイン内の移動:

キー操作
j / k下 / 上にスクロール
h / l左 / 右にスクロール(Diff ビュー内)
gg先頭にジャンプ
G末尾にジャンプ
Ctrl+d / Ctrl+u半ページ下 / 上

ブランチリスト

ブランチを選ぶとその git log がメインエリアにプレビューされます。Enter でアクションメニューが開きます — vig 全体で唯一リポジトリに書き込む場所で、 できることはちょうど 3 つです: ブランチへの切り替え(git switch)、安全な 削除(git branch -d。未マージなら git が拒否します — vig は -D を 使いません)、そして diff base への設定(diff ペインがワーキング ディレクトリとそのブランチを比較するようになります)。

キー操作
j / kブランチ移動(git log プレビューが更新)
Enterアクションメニュー(switch / delete / diff base 設定)
/ブランチ検索
Esc検索クリア / 比較対象を HEAD にリセット

Git Log

メインエリアの log プレビューはそれ自体を操作できます。コミットをたどり、 ハッシュをヤンクし、GitHub 上のコミットへジャンプできます。

キー操作
j / kコミット移動
Ctrl+d / Ctrl+u半ページスクロール
g / G先頭 / 末尾
yコミットハッシュをコピー
Yコミット URL をコピー
oGitHub で開く
/コミット検索
Esc検索クリア / ブランチリストへ戻る

Reflog

reflog ペインは「さっき何をした?」を diff で確認できるようにします。 任意の reflog エントリを選んで Enter を押すと diff base に設定され、 メインペインにその状態からの変更が表示されます。

キー操作
j / kエントリ移動
Ctrl+d / Ctrl+u半ページスクロール
g / G先頭 / 末尾
Enterdiff base として設定
/reflog 検索
Esc検索クリア / Branches へ戻る

Diff ペイン: モード

diff ペインは Scroll モードで始まり、j / k / h / l で スクロールします。iNormal モードに入ると文字カーソルと vim モーションが使え、そこから v / V で選択を開始できます — vim のバッファ そのままの操作感です。

キー操作
iNormal モードに入る
vVisual モード(文字単位)
VVisual-Line モード(行単位)
EscScroll モードに戻る

ヤンク(コピー)

Normal / Visual モードでのヤンクはシステムクリップボードに入ります:

キー操作
yy行をヤンク
yw / ye / yb単語 / 単語末尾 / 単語先頭までヤンク
y$ / y0行末 / 行頭までヤンク
y(Visual モード)選択範囲をヤンク

テキストオブジェクトも対応: iw, aw, i", a", i(, a(, i{, a{

検索

キー操作
/検索を開始
n次のマッチへ
N前のマッチへ

全ペイン(DiffView、FileTree、CommitLog、Reflog)で検索でき、大文字小文字を 区別しません。

制約

  • アクションメニューの git switchgit branch -d が vig 全体で 唯一の 書き込み操作です。ステージング・コミット・merge・rebase・ push・force delete はありません — 実装漏れではなく設計です。
  • diff の片側は常にワーキングディレクトリで、もう片側の base(HEAD、 ブランチ、reflog エントリ)を選ぶのがあなたです。