(я только сейчас нашел обсуждение, перенесенное в чат.)
Я предложил использовать git --no-pager log
, что сработало.Затем я спросил, что произвело git var GIT_PAGER
, и на какую программу он перенаправлен;ответы были:
$ git var GIT_PAGER
pager
$ which pager
/home/hkedia321/anaconda3/bin/pager
Другие спрашивали о состоянии выхода, которое было 141: это указывает на SIGPIPE в Linux.
Итак, это означает, что программа, живущая в этомместоположение - /home/hkedia321/anaconda3/bin/pager
- как-то неисправно.Вместо того, чтобы показывать вывод по одной странице за раз, он просто выходит, ничего не показывая, или умирает от сигнала SIGPIPE.Я отмечу здесь, что pager
в моей собственной системе Ubuntu 16.04 - это /usr/bin/pager
, которая является символической ссылкой на /etc/alternatives/pager
, которая сама является символической ссылкой на /bin/less
.
(Моя собственная git var GIT_PAGER
производит less
, чтобы я прошел через /bin/less
гораздо более непосредственно.)
Таким образом, у вас есть два варианта:
- исправить эту
pager
программу, чтобы она работала,или - избегайте этой конкретной
pager
программы.
Последнее достаточно просто, если вы предпочитаете less
в качестве пейджера, поскольку вы можете просто запустить:
git config --global core.pager less
(относится только к Git) или экспортируйте параметр:
PAGER=less
в вашей среде, что я и делаю в системах Linux, используя этот фрагмент кода в моем файле .profile
:
# bash and sh use "type" a bit differently, but both will
# exit 0 if the command exists (or is an alias).
command_exists() {
type "$1" >/dev/null 2>&1
}
# if less exists, use it as pager; if lesspipe exists, set its env too
command_exists less && {
export PAGER=less
export LESS=FRX
command_exists lesspipe && eval $(lesspipe)
}
(это характерно для Unix-подобных систем, использующих sh или bash, хотя и пытается выполнить самонастройку).