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_PAGERUmgebungsvariable,
- dann
core.pagerKonfiguration,
- dann
$PAGER,
- und dann die zur Kompilierungszeit gewählte Standardeinstellung (normalerweise 'weniger').
Wenn die LESSUmgebungsvariable nicht festgelegt ist, setzt Git sie auf FRSX
(wenn die LESSUmgebungsvariable festgelegt ist, ändert Git sie überhaupt nicht).
Wenn Sie die Standardeinstellung von Git für selektiv überschreiben möchten LESS, können Sie core.pagerzless -+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 SOption 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.pagerDokumentation neu schreiben
Der Text erwähnt core.pagerund GIT_PAGERohne 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 LESSauf 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, -FRSXob dies $LESSnicht vom Benutzer festgelegt wurde.
Die FRXFlags sind für Git tatsächlich sinnvoll ( Fund Xweil manchmal die Ausgabe von Git-Pipes zu kurz ist und Rweil Git-Pipes farbige Ausgabe).
Das SFlag (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 LESSStandardeinstellung ändert .
Insbesondere Sschadet 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 $ -FRSXLESS weiterhin explizit oder core.pager auf ' less -S' setzen.
Die Dokumentation lautet:
In der Umgebung wird die SOption nicht festgelegt , in der Befehlszeile jedoch weniger, um lange Zeilen abzuschneiden.
In ähnlicher Weise wird durch die Einstellung core.pagerauf less -+Fdie Fvon der Umgebung in der Befehlszeile angegebene Option deaktiviert und das quit if one screenVerhalten von deaktiviert less.
Man kann einige Flags speziell für bestimmte Befehle aktivieren: Zum Beispiel die Einstellung, pager.blameum less -Sdas 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 .