В терминале OS X когда less
вызывается сам по себе или другими программами, такими как man
, его вывод не будет записан на tty после того, как мы выйдем из less
. Например, если мы запустим less README
, мы будем временно перенаправлены на экран с такими вещами, как
SO rocks.
README (END)
И после нажатия q
вывод less
исчезнет, и мы получим что-то вроде
$less README
$ # shell waiting for input
Однако это не тот случай, если less
вызывается git
(в моем случае для пейджера git
установлено значение less -r
). Вывод less
всегда записывается на tty после выхода. Например, если мы запустим git log --oneline
, если журнал короткий, less
даже не будет вызван; если журнал длиннее одного экрана, то мы будем временно перенаправлены на экран вывода less
, как обычно:
0000000 set the pager of git to less
......
1111111 what's wrong with git?
(END)
И после нажатия q
все записывается на tty, поэтому мы получаем что-то вроде
$git log --oneline # OMG!!!
0000000 set the pager of git to less
...... (the entire log)
1111111 what's wrong with git?
$ # shell waiting for input
Так можно ли изменить это поведение? Я имею в виду, можно ли настроить git
так, чтобы он всегда направлял вывод на меньший (независимо от того, длинный или короткий вывод) и ничего не оставлял на tty после выхода less
? Спасибо.