Die jüngsten Änderungen in der Dokumentation erwähnen eine andere Möglichkeit, eine Standardoption für less
("Standardoptionen" sind FRSX
).
Für diese Frage würde dies bedeuten (git 1.8+)
git config --global --replace-all core.pager 'less -+F -+X'
Zum Beispiel, Dirk Bester schlägt vor in den Kommentaren :
export LESS="$LESS -FRXK"
so dass ich ein farbiges Diff mit Ctrl-C kündigen von less
.
Wilson F Erwähnt in den Kommentaren und in seine Frage das:
less unterstützt den horizontalen Bildlauf, d.h. wenn Zeilen abgeschnitten werden, deaktiviert less quit-if-one-screen, so dass der Benutzer den Text noch nach links scrollen kann, um zu sehen, was abgeschnitten wurde.
Diese Änderungen waren bereits in git 1.8.x sichtbar, wie in " Verwenden Sie den Pager immer für git diff
" (siehe die Kommentare). Aber die Dokumentation wurde gerade umformuliert ( für Git 1.8.5 oder 1.9, Q4 2013 ).
Textbetrachter zur Verwendung durch Git-Befehle (z.B. 'less').
Der Wert ist für die Interpretation durch die Shell bestimmt.
Die Reihenfolge ist wie folgt:
- die
$GIT_PAGER
Umgebungsvariable,
- dann
core.pager
Konfiguration,
- dann
$PAGER
,
- und dann die zur Kompilierzeit gewählte Voreinstellung (normalerweise 'less').
Wenn die LESS
Umgebungsvariable nicht gesetzt ist, setzt Git sie auf FRSX
(wenn LESS
Umgebungsvariable gesetzt ist, ändert Git sie überhaupt nicht).
Wenn Sie selektiv die Standardeinstellung von Git für LESS
können Sie einstellen core.pager
zu z.B. less -+S
.
Dies wird von Git an die Shell weitergegeben, die den endgültigen Befehl in LESS=FRSX less -+S
. Die Umgebung teilt dem Befehl mit, dass er die S
Option, um lange Zeilen zu kürzen, aber die Befehlszeile setzt sie auf die Standardeinstellung zum Falten langer Zeilen zurück.
Ver Übergabe 97d01f2a für den Grund der neuen Formulierung der Dokumentation:
Konfig: umschreiben core.pager
Dokumentation
Im Text heißt es core.pager
y GIT_PAGER
ohne ein Gesamtbild des Vorrangs zu vermitteln. Eine bessere Beschreibung findet sich in der git var
(1) Dokumentation.
Die Verwendung des Mechanismus, der systemweite, globale und repositoryspezifische Konfigurationsdateien ermöglicht, ist nicht auf diese spezielle Variable beschränkt. Entfernen Sie sie, um den Absatz zu verdeutlichen.
Schreiben Sie den Teil um, der erklärt, wie die Umgebungsvariable LESS
auf den Standardwert von Git gesetzt ist, und wie man ihn selektiv anpassen kann.
Nota: Übergabe b327583 ( Matthieu Moy moy
, April 2014, für git 2.0.x/2.1, Q3 2014) wird das S standardmäßig entfernt:
pager: standardmäßig 'S' aus $LESS entfernen
Standardmäßig hat Git die $LESS
a -FRSX
wenn $LESS
wurde vom Benutzer nicht gesetzt.
Die FRX
Flaggen sind für Git tatsächlich sinnvoll ( F
y X
denn manchmal ist der Ausgang Git Pipes to less kurz, und R
weil Git farbige Ausgaben leitet).
Die S
Flag (chop long lines) hat dagegen nichts mit Git zu tun und ist eine Frage der Benutzerpräferenz. Git sollte dem Benutzer nicht die Entscheidung überlassen, die LESS
Der Standard .
Genauer gesagt, die S
Flagge schadet Benutzern, die nicht vertrauenswürdigen Code innerhalb eines Pagers überprüfen, da ein Patch, der so aussieht:
-old code;
+new good code; [... lots of tabs ...] malicious code;
identisch erscheinen würde:
-old code;
+new good code;
Benutzer, die das alte Verhalten bevorzugen, können die Umgebungsvariable $LESS weiterhin auf -FRSX
explizit, oder setzen Sie core.pager auf ' less -S
'.
Die Dokumentation wird lauten:
Die Umgebung setzt nicht die S
Option, aber die Befehlszeile tut es und weist less an, lange Zeilen abzuschneiden.
Ähnlich verhält es sich mit der Einstellung core.pager
a less -+F
deaktiviert die F
Option, die von der Umgebung in der Befehlszeile angegeben wurde, die Deaktivierung der " quit if one screen
" Verhalten von less
.
Man kann einige Flags gezielt für bestimmte Befehle aktivieren: zum Beispiel, indem man pager.blame
a less -S
ermöglicht das Abschneiden von Zeilen nur für git blame
.