Przewijanie w poziomie w mniejszych przyrostach z mniejszą liczbą -S

25

Używam lessdo analizowania dzienników dostępu HTTP. Chcę wyświetlać wszystko starannie w pojedynczych wierszach, więc używam -S.

Problem, który mam, polega na tym, że pierwsza trzecia część okna terminala jest zajęta metadanymi, które mnie nie obchodzą. Kiedy używam klawiszy strzałek, aby przewijać w prawo, okazuje się, że przewija się poza początek informacji, na których mi zależy.

Mogę po prostu usunąć początek każdej linii, ale nie wiem, czy będę potrzebować tych danych w przyszłości i wolałbym nie utrzymywać osobnych plików ani uruchamiać skryptu za każdym razem, gdy chcę przeglądać niektóre dzienniki.

Przykład

Ta linia:

access.log00002: 10.0.0.0 - USER_X [07 / Nov / 2013: 16: 50: 50 +0000] „GET / some / long / URL”

Przewinąłbym do: ng/URL"

Pytanie

Czy istnieje sposób przewijania w mniejszych odstępach, zarówno znakowo, jak i słowem?

Mikrofon
źródło

Odpowiedzi:

19

Jedyne poziome polecenia przewijania przewijają się o pół ekranu, ale można przekazać argument liczbowy, aby określić liczbę znaków, np. Pisanie 4 Rightprzewija w prawo o 4 znaki. Mniej tak naprawdę nie ma pojęcia „bieżąca linia” i nie dzieli linii na słowa, więc nie ma możliwości przewijania jednego słowa na raz.

Możesz zdefiniować polecenie przewijane o ustaloną liczbę znaków. Na przykład, jeśli chcesz Shift+ Lefti Shift+ Rightprzewijać o 4 znaki jednocześnie:

  1. Określ sekwencje kontrolne wysyłane przez terminal dla tych kombinacji klawiszy. Terminale wysłać sekwencję bajtów, które zaczynają się od ucieczki (co może być napisane \e, \033, ^[w różnych kontekstach) znak dla klawiszy funkcyjnych i keychords. Naciśnij Ctrl+ V Shift+ Leftpo znaku zachęty powłoki: powoduje to wstawienie znaku zmiany znaczenia dosłownie (zobaczysz ^[na ekranie) zamiast przetwarzania go przez powłokę i wstawia resztę sekwencji zmiany znaczenia. Częstym Instalator Shift+ Lefti Shift+ Rightsend \eO2Di \eO2Codpowiednio.

  2. Utwórz plik o nazwie ~/.lesskeyi dodaj następujące wiersze (dostosuj, jeśli terminal wysyła różne sekwencje specjalne):

    #command
    \eO2D noaction 4\e(
    \eO2c noaction 4\e)
    

    Następnie uruchom lesskey, który konwertuje czytelny dla człowieka ~/.lesskeyplik binarny, ~/.lessktóry lessodczytuje po uruchomieniu .

Gilles „SO- przestań być zły”
źródło
19

Możesz użyć opcji „- #”, aby ustawić liczbę kolumn do przewijania w poziomie.

Ze strony podręcznika:

- # lub --shift
Określa domyślną liczbę pozycji do przewijania w poziomie w poleceniach STRZAŁKA W PRAWO i STRZAŁKA W LEWO. Jeśli podana liczba to zero, ustawia domyślną liczbę pozycji na połowę szerokości ekranu.

Przykład (ustaw przewijanie w poziomie do 10 kolumn):

mniej -S - # 10 mój_plik

Rikard
źródło
Czy istnieje możliwość dodania tej opcji do pliku konfiguracyjnego, więc nie muszę przekazywać opcji nr 1 za każdym razem, gdy wpisuję polecenie?
Trismegistos
1
@Trismegistos Tak, można ustawić zmienną środowiskową w swoim ~/.bashrczexport LESS="-# 1"
wisbucky
Możesz również ustawić procent szerokości ekranu, jeśli liczba zaczyna się od kropki dziesiętnej. Na przykład -# .25przewija się o 1/4 szerokości ekranu.
wisbucky
2

Alternatywą jest użycie mostpagera.

W opcji mostno-wrap ( -S) jest ustawieniem domyślnym i Rightprzewija jedną kolumnę w prawo zamiast pół ekranu. Użyj >lub, Tababy przewijać szybciej.

Inną alternatywą jest w3mpager (również jeden z najlepszych terminali przeglądarek internetowych), gdzie można używać <, >jak również, i ,, .o drobniejszych ziarnach przewijania (te same klawisze na klawiaturze qwerty).

Stéphane Chazelas
źródło
To nie jest prawda. Więcej jest domyślnie zawijanych i nie ma opcji -S.
Trismegistos
1
@Trismegistos, nie mówię o more(dla których istnieją dziesiątki wdrożeń), ale o most(autor: John E. Davis, nie znam żadnej innej implementacji).
Stéphane Chazelas