Sie können kombinieren -F
mit -X
, die die term Initialisierungssequenz deaktiviert.
export LESS=-FX
Dies hat den (Un) Vorteil, dass less
der angezeigte Text beim Beenden nicht gelöscht wird, egal wie lange die Datei war.
Öffnet auf meinem Debian-Computer hier less
immer den alternativen Bildschirm, um Dinge anzuzeigen.
Dies ist ärgerlich, wenn nur 2 oder 3 Zeilen angezeigt werden sollen. Ich möchte less
an:
als Pager arbeiten, wenn es mehr als nur einen Bildschirm mit Informationen gibt
und arbeiten wie cat
, wenn nicht.
Anscheinend less
hat die -F
Flagge für "Einzelbildschirm" -Fälle:
-F oder --quit-if-one-Bildschirm
Bewirkt, dass weniger automatisch beendet wird, wenn die gesamte Datei auf dem ersten Bildschirm angezeigt werden kann.
In meinem Fall wird es aber einfach wieder beendet und es werden keine Informationen angezeigt. Es ist mehr cat /dev/null
und daher nicht wirklich nützlich.
Hat jemand eine Idee, wie man dieses less
Verhalten erreichen kann?
Sie können kombinieren -F
mit -X
, die die term Initialisierungssequenz deaktiviert.
export LESS=-FX
Dies hat den (Un) Vorteil, dass less
der angezeigte Text beim Beenden nicht gelöscht wird, egal wie lange die Datei war.
Sie könnten so ein kleines Wrapper-Skript erstellen:
#!/bin/bash if (( $(wc -l < "$1") < $ )) then cat "$1" else less "$1" fi
Wenn Sie das in /usr/local/bin
oder ~/bin
als eine Datei erstellen, die so genannt wird less2
(Sie möchten vielleicht einen sehr kurzen Namen verwenden, l
um sie einfach einzugeben) und sicherstellen, dass sie mit ausführbar ist chmod a+x /usr/local/bin/less2
, können Sie sie anstelle von less
Befehlen des Formulars verwenden, d, (oder ).less filename
less2 filename
l filename
Dies funktioniert nicht, wenn Sie die Ausgabe eines anderen Befehls weiterleiten less
oder Optionen oder mehrere Dateinamen angeben.
Es ist zweifellos möglich, dasselbe ohne die zusätzliche Skriptdatei zu tun, indem Sie einen Alias als Funktion definieren, wenn Sie dies bevorzugen.
Wie erwähnt von grawity, können Sie passieren -F -X
dies zu erreichen, aber es bedeutet, less
wird viel Text in Ihrem Terminal Rückholung verlassen (und es nicht einmal, um sein könnte, wenn man sich den Text in springen less
). less
Das Ausgeben von nichts, wenn Sie nur übergeben, -F
ist Problem Nr. 303 .
Stattdessen können Sie ein Wrapper-Skript verwenden. Für langsame Eingaben, wie git log -Gregex
, möchten Sie:
A) Zeilen, die auf dem Hauptbildschirm angezeigt werden, sobald sie eingehen, und wechseln zum alternativen Bildschirm, sobald ein Bildlauf erforderlich ist (die erste $LINES
Ausgabe erscheint daher immer in Ihrem Bildlauf). Wenn ja, gehen Sie mit der zweiten von Gilles Antworten auf eine ähnliche Frage .
B) Zeilen, die auf dem alternativen Bildschirm erscheinen sollen, aber den alternativen Bildschirm verlassen und die Zeilen zum Hauptbildschirm drucken, wenn das Scrollen unnötig ist (daher erscheint keine Ausgabe in Ihrem Scrollback, wenn ein Scrollen erforderlich war); Wenn ja, schauen Sie sich meine Antwort auf eine ähnliche Frage an .