Horizontales Scrollen in kleineren Schritten mit weniger -S

25

Ich verwende lesszum Analysieren von HTTP-Zugriffsprotokollen. Ich möchte alles ordentlich in einzelnen Zeilen anzeigen, also verwende ich -S.

Das Problem, das ich habe, ist, dass das erste Drittel meines Terminalfensters mit Metadaten belegt ist, die mir egal sind. Wenn ich mit den Pfeiltasten nach rechts scrolle, wird ein Bildlauf über den Anfang der Informationen durchgeführt, die mir wichtig sind.

Ich könnte einfach den Anfang jeder Zeile löschen, aber ich weiß nicht, ob ich diese Daten in Zukunft benötigen werde, und ich möchte lieber nicht jedes Mal separate Dateien verwalten oder ein Skript ausführen, wenn ich einige Protokolle anzeigen möchte.

Beispiel

Diese Linie:

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

Würde scrollen zu: ng/URL"

Frage

Gibt es eine Möglichkeit, in kleineren Schritten zu scrollen, entweder nach Zeichen oder nach Wort?

Mike
quelle

Antworten:

19

Die einzigen horizontalen Bildlaufbefehle rollen um die Hälfte des Bildschirms, aber Sie können ein numerisches Argument übergeben, um die Anzahl der Zeichen anzugeben, z. B. einen Bildlauf 4 Rightnach rechts um 4 Zeichen. Less hat nicht wirklich den Begriff „aktuelle Zeile“ und teilt eine Zeile nicht in Wörter auf, sodass es nicht möglich ist, jeweils nach einem Wort zu scrollen.

Sie können einen Befehl definieren, der um eine feste Anzahl von Zeichen gescrollt wird. Wenn Sie beispielsweise Shift+ Leftund Shift+ Rightum jeweils 4 Zeichen rollen möchten :

  1. Bestimmen Sie die Steuersequenzen, die Ihr Terminal für diese Tastenkombinationen sendet. Terminals sendet eine Sequenz von Bytes , die mit dem Entweichen beginnen (die geschrieben werden können \e, \033, ^[in verschiedenen Zusammenhängen) Zeichen für die Funktionstasten und keychords. Drücken Sie an einer Shell-Eingabeaufforderung Ctrl+ V Shift+ Left: Dadurch wird das Escape-Zeichen wörtlich ( ^[auf dem Bildschirm) eingefügt, anstatt von Ihrer Shell verarbeitet zu werden, und der Rest der Escape-Sequenz wird eingefügt. Eine gemeinsame Einrichtung hat Shift+ Leftund Shift+ RightSende- \eO2Dund \eO2Cjeweils.

  2. Erstellen Sie eine Datei mit dem Namen ~/.lesskeyund fügen Sie die folgenden Zeilen hinzu (passen Sie an, ob Ihr Terminal andere Escape-Sequenzen sendet):

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

    Dann führen lesskey, was den Menschen lesbaren wandelt ~/.lesskeyin eine binäre Datei , ~/.lessdie lessliest , wenn es beginnt.

Gilles 'SO - hör auf böse zu sein'
quelle
19

Mit der Option "- #" können Sie die Anzahl der Spalten für das horizontale Scrollen festlegen.

Aus der Manpage:

- # oder --shift
Gibt die Standardanzahl der Positionen an, an denen in den Befehlen RIGHTARROW und LEFTARROW horizontal gescrollt werden soll. Wenn die angegebene Anzahl Null ist, wird die Standardanzahl der Positionen auf die Hälfte der Bildschirmbreite festgelegt.

Beispiel (horizontales Scrollen auf 10 Spalten einstellen):

weniger -S - # 10 meine_Datei

Rikard
quelle
Gibt es die Möglichkeit, diese Option zu einer Konfigurationsdatei hinzuzufügen, damit ich die Option # 1 nicht jedes Mal übergeben muss, wenn ich den Befehl eingebe?
Trismegistos
1
@Trismegistos Ja, Sie können die Umgebungsvariable in Ihrem ~/.bashrcwithexport LESS="-# 1"
wisbucky
Sie können auch einen Prozentsatz der Bildschirmbreite festlegen, wenn die Zahl mit einem Dezimalpunkt beginnt. Zum Beispiel -# .25würde um 1/4 der Bildschirmbreite scrollen.
wisbucky
2

Eine Alternative ist die Verwendung des mostPagers.

In mostist no-wrap ( -S) die Standardeinstellung und Rightscrollt eine Spalte nach rechts anstelle eines halben Bildschirms. Verwenden Sie >oder, Tabum schneller zu scrollen.

Eine weitere Alternative ist der w3mPager (auch einer des besten Terminal Web - Browser) , wo Sie verwenden können <, >als auch, und ,, .für eine feineres Korn Scrollen (gleichen Schlüssel auf QWERTY - Tastaturen).

Stéphane Chazelas
quelle
Das ist nicht wahr. Mehr wird standardmäßig verpackt und es gibt keine -S-Option.
Trismegistos
1
@Trismegistos, ich spreche nicht über more(für die es Dutzende von Implementierungen gibt), sondern über most(von John E. Davis, mir ist keine andere Implementierung bekannt).
Stéphane Chazelas