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 をコピー |
o | GitHub で開く |
/ | コミット検索 |
Esc | 検索クリア / ブランチリストへ戻る |
Reflog
reflog ペインは「さっき何をした?」を diff で確認できるようにします。
任意の reflog エントリを選んで Enter を押すと diff base に設定され、
メインペインにその状態からの変更が表示されます。
| キー | 操作 |
|---|---|
j / k | エントリ移動 |
Ctrl+d / Ctrl+u | 半ページスクロール |
g / G | 先頭 / 末尾 |
Enter | diff base として設定 |
/ | reflog 検索 |
Esc | 検索クリア / Branches へ戻る |
Diff ペイン: モード
diff ペインは Scroll モードで始まり、j / k / h / l で
スクロールします。i で Normal モードに入ると文字カーソルと vim
モーションが使え、そこから v / V で選択を開始できます — vim のバッファ
そのままの操作感です。
| キー | 操作 |
|---|---|
i | Normal モードに入る |
v | Visual モード(文字単位) |
V | Visual-Line モード(行単位) |
Esc | Scroll モードに戻る |
ヤンク(コピー)
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 switchとgit branch -dが vig 全体で 唯一の 書き込み操作です。ステージング・コミット・merge・rebase・ push・force delete はありません — 実装漏れではなく設計です。 - diff の片側は常にワーキングディレクトリで、もう片側の base(HEAD、 ブランチ、reflog エントリ)を選ぶのがあなたです。