Relativ oft möchte ich aufhören, less
aber das, was ich auf dem Bildschirm gesehen habe, lassen, um darauf zurückzugreifen. Gibt es eine Möglichkeit, dies zu tun? Problemumgehungen?
(Meine derzeitige Problemumgehung besteht darin, zu beenden und dann zu verwenden more
. Daher wird jede bessere Problemumgehung begrüßt. Das Ideal wäre etwas, das ich verwenden kann, wenn ich schon drinnen bin less
, vielleicht mit einer Shell-Einstellung oder einem Skript.)
Mein Desktop ist OSX, aber ich verwende RHEL- und Ubuntu-Server.
git diff
odergit log
)less -X
beansprucht den Bildlaufpuffer in meinem Terminal und entfernt einen Großteil der vorherigen Ausgabe. Ich würde es lieben, wenn ichless
nur mit dem letzten Screenful der Ausgabe zum Zeitpunkt des Ausstiegs beenden könnte. dh nach dem Verlassen würde nicht mehr als eine Seite des Bildlaufpuffers entnommenless
. Irgendwelche Ideen?-R
ist in der Regel eine sicherere Wahl als-r
.-R is "Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly in most cases."
-c
geht darum, wie man den Bildschirm aktualisiert, wenn man sich im Inneren bewegtless
.Antworten:
Dies ist eine Funktion des verwendeten Terminalemulators (xterm, gnome-terminal, konsole, screen). Ein alternativer Bildschirm oder Altscreen wird gestartet, wenn Programme wie
less
odervim
aufgerufen werden. Dieser Altscreen verfügt über keinen Verlaufspuffer und wird sofort beendet, wenn Sie das Programm beenden und zum ursprünglichen Bildschirm zurückkehren, in dem der Verlauf und die Platzierung des vorherigen Fensterinhalts wiederhergestellt werden.Sie können verhindern
less
, dass ein Altscreen gestartet wird, indem Sie das Argument "-X" übergeben.less -X /path/to/some/file
Sie können auch "-X" als Umgebungsvariable übergeben. Wenn Sie also verwenden
bash
, platzieren Sie dies in~/.bashrc
:Dies deaktiviert jedoch die Initialisierung und Deinitialisierung von TermCap (Terminalfähigkeit), sodass andere Ansichten, wenn Sie sie verwenden,
less
möglicherweise deaktiviert sind.Eine andere Möglichkeit wäre,
screen
die Optionaltscreen off
in Ihrem Browser zu verwenden und einzustellen~/.screenrc
.less
löscht den Bildschirm nicht und sollte die Farbformatierung beibehalten. Vermutlichtmux
wird die gleiche Option haben.Dieser Blogeintrag beschreibt das Problem und bietet verschiedene Lösungen
gnome-terminal
mit unterschiedlichem Erfolg.quelle
git log
(und wahrscheinlich anderen farbigen Befehlen) ist durcheinander.alias les="/usr/bin/less -X"
git log
Frage oben:export LESS="-r -X"
. (Keine Ahnung, was die Nebenwirkungen davon sind ...)git
dieLESS
Variable tatsächlich auf,FRSX
wenn sie beim Ausführen des Pagers nicht gesetzt ist. Sie können sie also einfachLESS
nicht setzen undless
werden automatisch mit ausgeführt-FRSX
. Suchen Sie nachcore.pager
ingit-config(1)
für weitere Informationen.Georges Lösung hat bei mir nicht funktioniert, aber diese Lösung (aus dem Blogeintrag, der in seiner Antwort verlinkt ist).
$ infocmp -I xterm > ~/xterm-noclear.src
Bearbeiten Sie ~ / xterm-noclear.src
ändere den Namen in der zweiten Zeile von 'xterm' in 'xterm-noclear' oder was auch immer dir passt (ändere auch 'xterm-debian' wenn es vorhanden ist)
entferne die Anweisungen 'smcup' und 'rmcup' (zB "smcup = \ E [? 1049h," und "rmcup = \ E [? 1049l,")
$ mkdir ~/.terminfo
$ tic ~/xterm-noclear.src
(x / xterm-noclear sollte in Ihrem ~ / .terminfo-Verzeichnis erscheinen)$ export TERM=xterm-noclear
(Überprüfen Sie jetzt das Verhalten von less und fügen Sie, wenn Sie damit einverstanden sind, die Zeile mit der Exportanweisung zu Ihrem ~ / .profile hinzu.)(Ich habe diese Anweisungen direkt aus @ jahs abgelehnter Bearbeitung von Georges Antwort kopiert.)
quelle
Ich erinnere mich, dass dies der Fall ist,
less -SEX
wenn ich die Ausgabe auf dem Bildschirm sichern muss, aber keine Zeilen umbrechen möchte. Zum Beispieldocker ps | less -SEX
:-S
-E
Taste loslassen, können Sie mit den Pfeiltasten scrollen-E
-X
Wenn Sie sich nicht erinnern können
less -SEX
, gibt es nicht viel Hoffnung für Sie. Einfach jedes Mal neu googeln, wenn ich denke.quelle