Geben Sie 'git log --oneline' in oh-my-zsh-Pipes in 'less' ein.

17

Ich habe gerade zu gewechselt Oh My Zshund verwende das Avit- Thema.

Wenn ich git log --onelinetippe, scheint meine Ausgabe an weitergeleitet zu werden less. Dies geschieht für jedes Thema, das ich verwende.

Wenn ich bashShell verwendet habe, wurde der Bildschirm für die Ausgabe dieser Zeilen nie gelöscht.

Wie richte ich es so ein, dass der Bildschirm nicht für die Ausgabe von Zeilen freigegeben wird, sondern nur die Zeilen ausgegeben werden, nachdem ich den Befehl eingegeben habe?

Hier ist ein Screenshot als Referenz:

Geben Sie hier die Bildbeschreibung ein

Paul
quelle
1
Bitte überprüfen Sie zuerst die Ausgabe von which gitund echo $GITPAGER. Und zweitens, wenn es git --no-pager log --onelinewie erwartet funktioniert.
Mpy
1
Das hat mich in die richtige Richtung geführt. Am Ende rannte ich los git config --global core.pager ''. Wenn Sie diese Frage beantworten, werde ich Ihren Beitrag mit einem Häkchen versehen. :)
Paul

Antworten:

5

Sie können einen Pager definieren, der gitstandardmäßig für seine Ausgabe über verwendet

  1. die $GIT_PAGERoder $PAGERUmgebungsvariable
  2. der git config eintrag core.pager

Der Pager kann mit der Befehlszeilenoption git vorübergehend deaktiviert werden --no-pager. Wie man es dauerhaft macht, hängt von den beiden oben genannten Möglichkeiten ab:

  1. Finden Sie heraus, wo in den Konfigurationsdateien Ihrer Shell die Umgebungsvariable $GIT_PAGERoder $PAGERdefiniert wird, und entfernen Sie diese Zeile.

  2. Lauf git config --global core.pager ''

mpy
quelle
10

vielleicht eine bessere Lösung:

git config --global --replace-all core.pager "less -F -X"

von Wie verhindere ich, dass Git Diff einen Pager verwendet?

zqb-all
quelle
Das ist wirklich besser. Ich erkläre, warum: Wenn Sie dies zum Beispiel tun, git logverschwindet Ihre gesamte Historie, nachdem Sie den Pager verlassen haben. Mit diesem Befehl bleibt es auf dem Bildschirm. Wenn das Protokoll wirklich kurz ist (zum Bildschirm passt), wird der Pager überhaupt nicht verwendet. Nur wenn der Inhalt lang genug ist, wird er in einen Pager eingeschlossen, und Sie verlieren den Bildschirm nicht, nachdem Sie auf "q" geklickt haben.
Pilat
7

oh-my-zshführt den lessBefehl mit -R(neu streichen) aus. Sie können , indem Sie die folgende Zeile dieses Verhalten deaktivieren , am Ende Ihrer~/.zshrc

unset LESS;

Dies ist auf -Rin eingestellt~/.oh-my-zsh/lib/misc.zsh

Quelle: https://stackoverflow.com/a/49267711/1050554 .

Luxian
quelle
1
Ich dachte, dieser Kommentar funktioniert nicht, aber ich habe den Teil des Hinzufügens von unset zum ENDE von zshrc verpasst
NoSenseEtAl
5

Eine einfache Möglichkeit, dies zu beheben, besteht darin, git logden Pager in den globalen Konfigurationseinstellungen nicht zu verwenden:

git config --global pager.log false

Aral Balkan
quelle
0

Edit file ~/.zshrc and add PAGER= Save the file Execute source ~/.zshrc

user2307776
quelle