ゆず日記

戦う Vimmer 兼 Dvorakユーザ 兼 Kinesisユーザ 兼 おぺらー が戦わないブログ

tig の help ビューの日本語訳を纏めてみたお話。

tig をもっと理解して使おうと tig の helpビューの内容を纏めてみた。
help ビューの内容はキーバインディングのみで説明が一切ないのでちょっとだけ補足コメント付けてみた。

共通のキーバインディング

ビュー切り替え

key name 切り替え先のビュー ビューの説明
m view-main mainビュー commit履歴を表示するメインの画面
d view-diff diffビュー 特定のコミットの差分を表示する画面
l view-log logビュー git log 相当の画面
t view-tree treeビュー ファイルツリー
f view-blob blobビュー 実ファイルの中身を確認できるビュー
b view-blame blameビュー git blame 相当の画面
r view-refs refsビュー git branch -a 相当の画面
s, S view-status statusビュー git status 相当の画面
c view-stage stageビュー stage したファイルの確認, 編集できるビュー
y view-stash stashビュー git stash 相当
g view-grep grepビュー grep
p view-pager pagerビュー 未調査
h view-help helpビュー :h

全部でビューが13種類もあるんですねー。3種類位しか使ってなかった。

操作

key name 操作
Enter enter 決定, 選択行を開く
< back 前の表示に戻る
<Down>, <Ctrl-N> next 次に進む
<Up>, <Ctrl-P> previous 前に戻る
, parent 一階層戻る
<Tab> view-next 次の view をフォーカス
R, <F5> refresh 再読み込み
O maximize 現在の view を最大化
q view-close 現在の view を閉じる
Q quit すべての view を閉じて終了

カーソル移動

key name 移動先
k move-up 一行上へ移動
j move-down 一行下へ移動
<PageDown>, <Ctrl-D>, <Space> move-page-down 1ページ下へ移動
<PageUp>, <Ctrl-U>, - move-page-up 1ページ上へ移動
<Home> move-first-line 行頭へ移動
<End> move-last-line 行末へ移動

スクロール移動

key name 移動先
<Insert>, <Ctrl-Y> scroll-line-up 一行上へスクロール
<Delete>, <Ctrl-E> scroll-line-down 一行下へスクロール
<ScrollBack> scroll-page-up 1ページ上へスクロール
<ScrollFwd> scroll-page-down 1ページ下へスクロール
| scroll-first-col 1つ目のカラムへスクロール
<Left> scroll-left 2つ左のカラムへスクロール
<Right> scroll-right 2つ右のカラムへスクロール

検索

key name 補足
/ search /hoge でこのview内のhogeを検索し、カーソル位置から最も近い次の出現箇所へ移動
? search-back ?hoge でこのview内のhogeを検索し、カーソル位置から最も近い前の出現箇所へ移動
n find-next 次の出現箇所へ移動
N find-prev 前の出現箇所へ移動

オプション操作

key name 操作
o options オプションメニューを開く

その他

key name 補足
e edit エディタで開く
: prompt プロンプトを開く
<Ctrl-L> screen-redraw 再描画
z stop-loading すべての読み込み中のviewを止める
v show-version バージョン情報を表示

そのままエディタで開けられるの今知った...

表示切り替え

key name
I :toggle sort-order
i :toggle sort-field
# :toggle line-number
D :toggle date
A :toggle author
~ :toggle line-graphics
F :toggle file-name
W :toggle ignore-space
X :toggle id
$ :toggle commit-title-overflow
% :toggle file-filter

例えば mainビューで D を押すと押す度に日付表示を切り替えることが出来る。

各キーごとに有効なviewが異なるようでちょっと使い勝手が...
使いたいものを .tigrc に書いといた方が良さげ。

メインビューのキーバインディング

表示切り替え

key name
G :toggle commit-title-graph
F :toggle commit-title-refs

コミットグラフは便利だけどコミットコメントを見る際には全角/半角記号のレンダリングが崩れてしまって、コメントが見づらい。 そんな時に G は非常に有用。

外部コマンドの実行

key name 補足
C ?git cherry-pick %(commit) git cherry-pick

diff ビューのキーバインディング

表示切り替え

key name 補足
[ :toggle diff-context -1 差分前後の表示行数を減らす
] :toggle diff-context +1 差分前後の表示行数を増やす

[, ] で差分前後の表示行数の増減が可能。あーこれ欲しかった機能だ。

内部コマンドの実行

key name 補足
@ :/^@@ 次の差分へ移動

:?^@@ も登録しておくといいかも。

refs ビューのキーバインディング

key name
C ?git checkout %(branch)
! ?git branch -D %(branch)

ブランチの checkout と削除が行える。どちらも確認が出る。

status ビューのキーバインディング

key name 補足
u status-update ファイルを stage / unstage する。 git add <file>, git reset @ <file> 相当
! status-revert revert する。実質git checkout <file> 相当?
M status-merge 外部merge ツールを起動してmerge する

外部コマンドの実行

key name 補足
C !git commit git commit します

はい。

stage ビューのキーバインディング

key name 補足
u status-update ファイルを stage / unstage する。 git add <file>, git reset @ <file> 相当
! status-revert revert する。実質git checkout <file> 相当?
1 stage-update-line 現在の行を stage / unstage する
\ stage-split-chunk 何を分割するのかちと不明

1 は便利...なのかも知れない。

表示切り替え

key name 補足
[ :toggle diff-context -1 差分前後の表示行数を減らす
] :toggle diff-context +1 差分前後の表示行数を増やす

diff ビューと一緒

内部コマンドの実行

key name 補足
@ :/^@@ 次の差分へ移動

diff ビューと一緒

stash ビューのキーバインディング

key name 補足
P ?git stash pop %(stash) git stash pop
! ?git stash drop %(stash) stash の削除

git stash list より中身が確認しやすい分楽。

纏め

他のキーで機能を使いたい場合には、機能名(name)も表に纏めたので .tigrc にお好みで設定を書くといい。 特に git push は default では出来ない仕様なので自分で .tigrc にキーバインディングを追加する必要がある。

tig を便利な git viewer 位に思ってたけど、SourceTree と同等位の機能を持っててビックリした。

TODO:

次は .tigrc について纏める

tig(1)
tigrc(5)