In den letzten Änderungen in der Dokumentation wird eine andere Methode zum Entfernen einer Standardoption für less
("Standardoptionen" FRSX
) erwähnt.
Für diese Frage wäre dies (Git 1.8+)
git config --global --replace-all core.pager 'less -+F -+X'
Zum Beispiel schlägt Dirk Bester in den Kommentaren vor :
export LESS="$LESS -FRXK"
so dass ich mit dem Ctrl-CBeenden von farbig diff bekomme less
.
Wilson F erwähnt in den Kommentaren und in seiner Frage, dass:
Weniger unterstützt das horizontale Scrollen. Wenn also Zeilen abgeschnitten werden, deaktiviert weniger das Beenden, wenn ein Bildschirm angezeigt wird, sodass der Benutzer den Text weiterhin nach links scrollen kann, um zu sehen, was abgeschnitten wurde.
Diese Änderungen waren bereits in Git 1.8.x sichtbar, wie unter " Verwenden Sie immer den Pager fürgit diff
" dargestellt (siehe Kommentare). Die Dokumentation wurde jedoch gerade umformuliert ( für Git 1.8.5 oder 1.9, 4. Quartal 2013 ).
Text-Viewer zur Verwendung durch Git-Befehle (z. B. 'less').
Der Wert soll von der Shell interpretiert werden.
Die Reihenfolge der Präferenzen ist:
- die
$GIT_PAGER
Umgebungsvariable,
- dann
core.pager
Konfiguration,
- dann
$PAGER
,
- und dann die zur Kompilierungszeit gewählte Standardeinstellung (normalerweise 'weniger').
Wenn die LESS
Umgebungsvariable nicht festgelegt ist, setzt Git sie auf FRSX
(wenn die LESS
Umgebungsvariable festgelegt ist, ändert Git sie überhaupt nicht).
Wenn Sie die Standardeinstellung von Git für selektiv überschreiben möchten LESS
, können Sie core.pager
zless -+S
.
Dies wird von Git an die Shell übergeben, die den endgültigen Befehl in übersetzt LESS=FRSX less -+S
. Die Umgebung weist den Befehl an, die S
Option zum Hacken langer Zeilen festzulegen, die Befehlszeile setzt sie jedoch auf die Standardeinstellung zurück, um lange Zeilen zu falten.
Siehe Commit 97d01f2a für den Grund für den neuen Wortlaut der Dokumentation:
config: core.pager
Dokumentation neu schreiben
Der Text erwähnt core.pager
und GIT_PAGER
ohne das Gesamtbild der Priorität zu geben. Eine bessere Beschreibung aus der git var
(1) Dokumentation ausleihen .
Die Verwendung des Mechanismus zum Zulassen systemweiter, globaler und repositorybezogener Konfigurationsdateien ist nicht auf diese bestimmte Variable beschränkt. Entfernen Sie es, um den Absatz zu verdeutlichen.
Schreiben Sie den Teil neu, in dem erläutert wird, wie die Umgebungsvariable LESS
auf den Standardwert von Git gesetzt wird und wie Sie sie selektiv anpassen können.
Hinweis: Commit b327583 ( Matthieu Moymoy
, April 2014, für Git 2.0.x / 2.1, Q3 2014) entfernt standardmäßig das S:
Pager: Entfernen Sie standardmäßig 'S' aus $ LESS
Standardmäßig hat Git festgelegt $LESS
, -FRSX
ob dies $LESS
nicht vom Benutzer festgelegt wurde.
Die FRX
Flags sind für Git tatsächlich sinnvoll ( F
und X
weil manchmal die Ausgabe von Git-Pipes zu kurz ist und R
weil Git-Pipes farbige Ausgabe).
Das S
Flag (lange Zeilen hacken) hat dagegen nichts mit Git zu tun und ist eine Frage der Benutzerpräferenz. Git sollte sich nicht dafür entscheiden, dass der Benutzer die LESS
Standardeinstellung ändert .
Insbesondere S
schadet das Flag Benutzern, die nicht vertrauenswürdigen Code in einem Pager überprüfen, da ein Patch wie folgt aussieht:
-old code;
+new good code; [... lots of tabs ...] malicious code;
würde identisch erscheinen mit:
-old code;
+new good code;
Benutzer, die das alte Verhalten bevorzugen, können die Umgebungsvariable $ -FRSX
LESS weiterhin explizit oder core.pager auf ' less -S
' setzen.
Die Dokumentation lautet:
In der Umgebung wird die S
Option nicht festgelegt , in der Befehlszeile jedoch weniger, um lange Zeilen abzuschneiden.
In ähnlicher Weise wird durch die Einstellung core.pager
auf less -+F
die F
von der Umgebung in der Befehlszeile angegebene Option deaktiviert und das quit if one screen
Verhalten von deaktiviert less
.
Man kann einige Flags speziell für bestimmte Befehle aktivieren: Zum Beispiel die Einstellung, pager.blame
um less -S
das Abschneiden von Zeilen nur für zu aktivieren git blame
.
core.pager 'less -+F -+X'
wäre eine neuere Möglichkeit, diese Optionen zu entfernen. Siehe meine Antwort unten .