やけに丁寧なtigの設定ガイド（表示制御編）

# はじめに

コマンドラインで利用できるgitブラウザとして人気の[tig](http://jonas.nitro.dk/tig/)ですが、
使っていくうちにデフォルトの挙動では物足りなく感じ、.tigrcを利用したカスタマイズをしたくなってきます。

.tigrcをいじると色々なカスタマイズができますが、一度に多くの設定を書いてしまうと、
何が変わったかわかりづらかったり、変更の利点が曖昧になる時もあると思います。
そこで本記事では、.tigrcに関して筆者がオススメする4つの表示制御設定を紹介します。

ただ設定を紹介すると設定4行とコメントだけで終わるので、
スクリーンショットでbefore/afterを比較したり、オススメ理由を書いていきます。

なお、表示されているリポジトリは、本稿執筆時点で筆者が個人的に気になっているプロダクトである
 [favico.js](https://github.com/ejci/favico.js) のmasterブランチです。

「やけに丁寧だね！」と読者からコメントをいただけるような内容になっていれば幸いです。

# コミットIDを出そう

tigのデフォルト表示では、コミットのIDは表示されていません。

![http://cl.ly/image/0z0q2K1Q3011](http://f.cl.ly/items/0G1q0Z1m1e2X0n0w2b05/1__tig__tig_%202.png)
[拡大表示](http://cl.ly/image/0z0q2K1Q3011)

これを表示するには次の設定を記述します。

```bash:~/.tigrc
# main viewの左端にコミットIDを表示する
set main-view = id date author commit-title:graph=yes,refs=yes
# デフォルト
# set main-view = date author commit-title:graph=yes,refs=yes
```

すると、ログの左端にコミットIDが表示されるようになります。

![http://cl.ly/image/3213231b111f](http://f.cl.ly/items/3c362j0S0B1v0I0a0w0n/1__tig__tig_-2%202.png)
[拡大表示](http://cl.ly/image/3213231b111f)

なお、表示するIDの文字数を変えることもできます。
たとえば12文字にするなら

```bash:~/.tigrc
set main-view = id:width=12 date author commit-title:graph=yes,refs=yes
```

とします。

# 画面の垂直分割を試してみよう

tig 1.2まではmain viewで任意のコミットにカーソルを(j/kで上下移動して)動かしてenterすると、画面を水平分割して当該コミットのdiffが表示されました。

![http://cl.ly/image/213S213y1z31](http://f.cl.ly/items/3y050p0G2w162G0P220h/1__tig__tig_-3%202.png)
[拡大表示](http://cl.ly/image/213S213y1z31)

2.0からは画面サイズに応じて自動的に縦分割と横分割が選択されるようになりました。常に縦分割するように強制したい場合は

```bash:~/.tigrc
# 画面を垂直方向に分割する
set vertical-split = yes
# 横分割に強制する
# set vertical-split = no
# デフォルト値
# set vertical-split = auto
```

すると、diff表示が常に画面の右側に表示されるようになります。

![http://cl.ly/image/0A1f1r2R1b2I](http://f.cl.ly/items/1q1q0H0R2F2S0J1n1l2u/1__tig__tig_-4%202.png)
[拡大表示](http://cl.ly/image/0A1f1r2R1b2I)

ファイルやコミットログで1行あたりの文字長を制限しているリポジトリ（※1行80文字など）では、
特に使いやすい設定かと思います。逆に1行がひたすら横に長い環境では使いづらいでしょう。

# 水平分割の上下比率を変えよう

先に紹介した垂直分割では使いづらい環境では、
水平分割の上下比率を調整することで使い勝手が向上するかもしれません。

tigのデフォルト表示では、水平分割した際の画面比率は、下画面が66%になります。

![http://cl.ly/image/213S213y1z31](http://f.cl.ly/items/3y050p0G2w162G0P220h/1__tig__tig_-3%202.png)
[拡大表示](http://cl.ly/image/213S213y1z31)


下画面をさらに広げてみましょう。80%にしてみます。

```bash:~/.tigrc
# 水平分割したウィンドウの下画面サイズを % で指定（行数指定も可）
set split-view-height = 80%
```

すると次のようになります。

![http://cl.ly/image/0F3E1V3S170Y](http://cl.ly/image/0F3E1V3S170Y/1__tig__tig_-5%202.png)
[拡大表示](http://cl.ly/image/0F3E1V3S170Y)

自分の環境で使いやすい比率を探してみましょう。

# 差分の文脈をカスタマイズしよう

diff表示において、差分の前後の文脈(diff-context)がわかりづらい場合があります。
tigのデフォルト表示では、前後3行が見える状態になっています。

![http://cl.ly/image/213S213y1z31](http://f.cl.ly/items/3y050p0G2w162G0P220h/1__tig__tig_-3%202.png)
[拡大表示](http://cl.ly/image/213S213y1z31)

3行では不足する場合、これを増やすことができます。試しに6行にしてみます。

```bash:~/.tigrc
# 差分の前後の表示行数（diff-context)を指定 
set diff-context = 6
```

すると、次のように6行分が表示されるようになりました。

![http://cl.ly/image/2K2D063a2Q1g](http://cl.ly/image/2K2D063a2Q1g/1__tig__tig_-6%202.png)
[拡大表示](http://cl.ly/image/2K2D063a2Q1g)

あまり長すぎても差分の確認時に不要な行が出てしまってノイズになりますので、
環境に合わせて加減を調整するとよいと思います。

# おわりに

本稿では.tigrcで可能な4つの設定に絞ってtigの画面表示カスタマイズ設定を紹介しました。
紹介した設定の詳細や、その他の.tigrcで設定可能な項目は下記の本家マニュアルを参照してください。
[tigrc(5) Manual Page](http://jonas.nitro.dk/tig/tigrc.5.html)

機会があればキーバインド編も紹介したいと思います。 → [書きました](http://qiita.com/yoshikazusawa/items/3eaa6db78fa348d38bfe)