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_PAGER
zmienna,
- następnie
core.pager
konfiguracja,
- następnie
$PAGER
,
- a następnie domyślny wybrany w czasie kompilacji (zwykle „mniej”).
Gdy LESS
zmienna środowiskowa jest rozbrojona, Git ustawia ją na FRSX
(jeśli LESS
zmienna ś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.pager
npless -+S
.
To zostanie przekazane do powłoki przez Git, który przetłumaczy ostatnie polecenie LESS=FRSX less -+S
. Środowisko nakazuje komendzie ustawienie S
opcji 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.pager
dokumentację
Tekst wspomina core.pager
i GIT_PAGER
nie 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 LESS
jest 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ł $LESS
na -FRSX
if, jeśli $LESS
nie został ustawiony przez użytkownika.
Te FRX
flagi faktycznie sens dla Git ( F
i X
dlatego czasami wyjście Git rury do mniej jest krótki, a R
ponieważ rury Git kolorowe wyjście).
Z S
drugiej 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ł LESS
ustawienia domyślne .
Mówiąc dokładniej, S
flaga 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ą -FRSX
jawnie ustawić zmienną środowiskową $ LESS lub ustawić core.pager na ' less -S
'.
Dokumentacja będzie zawierać:
Środowisko nie ustawia tej S
opcji, ale robi to w wierszu poleceń, nakazując mniej obcinania długich linii.
Podobnie ustawienie core.pager
na less -+F
dezaktywuje F
opcję 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.blame
do less -S
umoż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 .less
z git (zależy odless
wersji): unix.stackexchange.com/questions/107315/...