Ostatnie zmiany w dokumentacji wspominają o innym sposobie usuwania domyślnej opcji dla less(„domyślnymi opcjami” FRSX).
W przypadku tego pytania byłoby to (git 1.8+)
git config --global --replace-all core.pager 'less -+F -+X'
Na przykład Dirk Bester sugeruje w komentarzach :
export LESS="$LESS -FRXK"
tak, że otrzymałem kolorową różnicę przy Ctrl-Crezygnacji z less.
Wilson F wspomina w komentarzach i swoim pytaniu, że:
mniej obsługuje przewijanie w poziomie, więc gdy linie są odcinane, mniej wyłącza wyjście z jednego ekranu, dzięki czemu użytkownik może nadal przewijać tekst w lewo, aby zobaczyć, co zostało obcięte.
Modyfikacje te były już widoczne w git 1.8.x, jak pokazano w „ Zawsze używaj pagera dlagit diff ” (patrz komentarze). Ale dokumentacja właśnie została przeredagowana ( dla git 1.8.5 lub 1.9, IV kw. 2013 ).
Przeglądarka tekstu do użytku przez komendy Git (np. „Mniej”).
Wartość ma być interpretowana przez powłokę.
Kolejność preferencji jest następująca:
-
$GIT_PAGERzmienna,
- następnie
core.pager konfiguracja,
- następnie
$PAGER ,
- a następnie domyślny wybrany w czasie kompilacji (zwykle „mniej”).
Gdy LESSzmienna środowiskowa jest rozbrojona, Git ustawia ją na FRSX
(jeśli LESSzmienna środowiskowa jest ustawiona, Git w ogóle jej nie zmienia).
Jeśli chcesz selektywnie zastąpić domyślne ustawienie Git dla LESS, możesz ustawić core.pagernpless -+S .
To zostanie przekazane do powłoki przez Git, który przetłumaczy ostatnie polecenie LESS=FRSX less -+S. Środowisko nakazuje komendzie ustawienie Sopcji odcinania długich linii, ale linia poleceń resetuje ją do domyślnej opcji składania długich linii.
Zobacz commit 97d01f2a, aby poznać powód sformułowania nowej dokumentacji:
config: przepisz core.pagerdokumentację
Tekst wspomina core.pageri GIT_PAGERnie daje ogólnego obrazu pierwszeństwa. Pożycz lepszy opis z git var(1) dokumentacji.
Wykorzystanie mechanizmu umożliwiającego ogólnosystemowe, globalne i konfiguracyjne dla repozytorium pliki nie jest ograniczone do tej konkretnej zmiennej. Usuń go, aby wyjaśnić akapit.
Przepisz część, która wyjaśnia, w jaki sposób zmienna środowiskowa LESSjest ustawiona na wartość domyślną Git i jak ją selektywnie dostosowywać.
Uwaga: zatwierdzenie b327583 ( Matthieu Moymoy , kwiecień 2014 r., Dla git 2.0.x / 2.1, III kw. 2014) domyślnie usunie literę S:
pager: domyślnie usuwa „S” z $ LESS
Domyślnie Git ustawiał $LESSna -FRSXif, jeśli $LESSnie został ustawiony przez użytkownika.
Te FRXflagi faktycznie sens dla Git ( Fi Xdlatego czasami wyjście Git rury do mniej jest krótki, a Rponieważ rury Git kolorowe wyjście).
Z Sdrugiej strony flaga (przerywaj długie linie) nie jest powiązana z Git i jest kwestią preferencji użytkownika. Git nie powinien decydować, aby użytkownik zmienił LESSustawienia domyślne .
Mówiąc dokładniej, Sflaga wyrządza szkodę użytkownikom, którzy przeglądają niezaufany kod w pagerze, ponieważ łatka wygląda następująco:
-old code;
+new good code; [... lots of tabs ...] malicious code;
wyglądałby identycznie jak:
-old code;
+new good code;
Użytkownicy, którzy wolą stare zachowanie, nadal mogą -FRSXjawnie ustawić zmienną środowiskową $ LESS lub ustawić core.pager na ' less -S'.
Dokumentacja będzie zawierać:
Środowisko nie ustawia tej Sopcji, ale robi to w wierszu poleceń, nakazując mniej obcinania długich linii.
Podobnie ustawienie core.pagerna less -+Fdezaktywuje Fopcję określoną przez środowisko z wiersza poleceń, dezaktywując zachowanie " quit if one screen" less.
Można aktywować jakieś flagi specjalnie dla poszczególnych poleceń, na przykład: ustawienie pager.blamedo less -Sumożliwia obcinanie linii tylko dla git blame.
core.pager 'less -+F -+X'byłby nowszym sposobem na usunięcie tych opcji. Zobacz moją odpowiedź poniżej .