2012-08-28 11 views
19

Wykonuję wszystkie prace terminalowe w emacs i wolę używać znacznie bogatszych narzędzi do przemieszczania się wokół wyjścia niż "mniej". Co gorsza, za każdym razem, gdy strony aplikacji są w emacs, jest strasznie denerwujące, ponieważ jest to głupi terminal.Wyłącz wszystkie stronicowania w git

Chociaż mogę zamienić takie rzeczy jak "git help rm" dla "M-x man git-rm", wolałbym po prostu wyłączyć wszystkie stronicowania wszystkiego w git. Wtedy nie muszę polować na odpowiednie inkantacje.

git config --global core.pager cat 

Nie wydaje się, że to wystarczy.

git config --global man.viewer "man -P cat" 

powoduje problemy, ponieważ "man -P cat" nie jest prawidłowym plikiem wykonywalnym.

Jak mogę uzyskać git, aby po prostu zrzucić jego wydruk?

+0

'git -c core.pager = cat log' działa dobrze dla mnie. –

+0

Naprawdę chciałbym móc zaznaczyć dwie odpowiedzi jako prawidłowe, ponieważ są dwie rzeczy, które musisz zrobić, aby naprawdę to osiągnąć. Pierwszym z nich jest wyłączenie core.pagera (patrz odpowiedź kan). Druga polega na włączaniu stronicowania (patrz odpowiedź Geoffa). Oznacziłem Geoffa jako poprawną odpowiedź, ponieważ już wcześniej zorientowałem się w pierwszej, ale nie mogłem wydobyć drugiej z nich. –

+4

Dodałem '(setenv" PAGER "" cat ")' do mojego pliku inicjującego Emacs i wszystko działało. Nie jest wymagane ustawienie specyficzne dla git. Ma to tę dodatkową zaletę, że w zwykłym gitarze działa z typowym pageriem. –

Odpowiedz

6

z lektury git help manpage wygląda na to, powinieneś być w stanie

git config --global man.viewer catman 
git config --global man.catman.cmd "man -P cat" 

man.viewer wartość config jest nazwą narzędzie, a nie (częściowe) linia poleceń. Następnie man.catman.cmd podaje polecenie do użycia dla narzędzia catman.

Wygląda na to, że ustawienie core.pager na cat powinno zająć się wszystkim innym.

+0

To jest ten, którego mi brakowało. Dziękuję za odkrycie dodatkowego kroku, którego potrzebowałem, aby działało! –

1

Możesz spróbować alias git='git --no-pager'. Lub jeśli to nie działa z jakiegoś powodu w emacs, możesz utworzyć skrypt powłoki git gdzieś wcześniej w swoim PATH, który wywołuje prawdziwe git --no-pager.

+0

To był mój pierwszy strzał i rozwiązał niektóre problemy, ale nie wszystkie. Jest to w przybliżeniu równoważne ustawieniu core.pager na cat powyżej. –

10

Aby wyłączyć stronicowanie dla wszystkich poleceń, ustaw core.pager lub GIT_PAGER do cat.

(c) http://www.kernel.org/pub/software/scm/git/docs/git-config.html

dodawania. Pytasz także o git help. W rzeczywistości nie jest to pager git, to jest $MANPAGER. Więc może dla ciebie wystarczy tylko zrobić PAGER=cat.

PAGER=cat git help log działa bez pagery.

+1

'GIT_PAGER = cat git log' działał dobrze dla mnie –

+0

Jak wspomniałem w oryginalnym pytaniu, nie rozwiązało to wszystkich problemów. Jest to z pewnością rozwiązanie części "problemu", więc kolejka jest w porządku. –

+0

Działa również dobrze, jeśli ustawisz "GIT_PAGER" na pusty ciąg: 'GIT_PAGER = git log' (przynajmniej od wersji git 1.8.x). –