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)の効果を得たいんですが…。