Last Modified:
less --quit-if-one-screenは便利だが--no-initを忘れるな #Shell
1画面より小さな出力をlessする時は、catのようにそのまま画面に出して欲しいことがあります。特にGit使ってる時に頻繁に感じます。
less
の--quit-if-one-screen(-F)
オプションを使うとまさに上記の挙動になります。
ただ、less
デフォルトの挙動として「画面クリア→元画面復帰」が行なわれるので、そのままでは「一瞬だけ表示されてすぐ終了」となって何も表示されないように見えます(ちょいハマりました)。
この挙動は--no-init(-X)
オプションを付けることによって抑制できます。
(これは環境によって違うみたい。Version444ではその通りだけど、Version436では--quit-if-one-screen(-F)
を指定したら--no-init(-X)
も勝手に指定したことになるっぽい)
Gitで有効にするために~/.gitconfig
で
[core]
pager = less --no-init --quit-if-one-screen
としています。
ところで--no-init(-X)
には弊害があって、「画面クリア→元画面復帰」をしてくれないのでバッファが汚れてしまうようになるのです。
困りましたね。--quit-if-one-screen(-F)
の効果が発揮された時だけ(1画面に収まった時だけ)--no-init(-X)
の効果を得たいんですが…。