Poprawiam pager Gita, ale mam z tym pewne problemy.
Chcę to:
- Zawsze kolorowe wydruki
- Przewijanie za pomocą touchpada lub myszy
- Quit-if-one-screen
A moja obecna konfiguracja to:
$ git config --global core.pager
less -+F -+X -+S
Robi to wszystko oprócz ostatniego.
Ale jeśli usunę -+F
, nie będzie wyjścia w przypadku jednego ekranu. Jeśli -+X
również usunę, dane wyjściowe powrócą, ale nie mogę przewijać panelu dotykowego less
.
Czy istnieje obejście, które może spełnić wszystkie powyższe wymagania?
-F
(wychodzę, jeśli jeden ekran) zawsze robię to w połączeniu z-X
(wyłącz termcap init i de-init), ale jak mówisz, nie pozwala to na przewijanie za pomocą myszy. (Wątpię, że przewijanie jest w ogóle możliwe-X
). Zmodyfikowałem tytuł pytania, ale możesz go cofnąć, jeśli uważasz, że traci on zbyt duże znaczenie. :)Odpowiedzi:
AKTUALIZACJA
tl; dr Rozwiązanie: uaktualnij do mniej 530
Od http://www.greenwoodsoftware.com/less/news.530.html :
Dzięki tej poprawce nie musimy nawet zawracać sobie głowy określeniem, czy korzystać
-X
z niego samodzielnie,less -F
po prostu się tym zajmuje.PS. Niektóre inne mniej konfiguracje, których używam:
W końcu sam napisałem opakowanie.
Użytkownicy BSD / OSX powinni zainstalować ręcznie
gnu-sed
. Niesamowite wyrażenie regularne, które pomaga usunąć kody kolorów, pochodzi z /programming//a/18000433/2487227Zapisałem ten skrypt do
/usr/local/bin/pager
tego czasugit config --global core.pager /usr/local/bin/pager
Leczenie pacjentów z obsesyjno-kompulsyjną chorobą!źródło
fold
powinienem sobie z tym poradzić ... ale tak, może błędy ... czy mógłbyś proszę podać przykład?fold
tak naprawdę nie rozumie kart. Możesz go naprawić za pomocąexpand
. To nadal nie obsłuży osadzonych sekwencji ucieczki (o które często pyta się w kontekściegit
).fold
nie dostosowałem zawiniętych linii za pomocą spacji, ale po prostu znalazłem najbliższy punkt do cięcia. Wygląd będzie więc mylący.Używam następującego opakowania jako mojego pagera. To nie jest tak fantazyjne, jak pokazane tutaj drugie opakowanie (ponieważ zawsze używa
less -S
do obcinania długich linii), ale jest cholernie proste. Wydaje się, że działa całkiem dobrze z iTerm2.źródło