Gibt es einen automatisch scrollenden, zeitverzögerten Unix-Pager-Befehl?

1368
Blazej Wieliczko

Ich möchte die Ausgabe großer Befehle verlangsamt sehen, wie z. B. eine Diashow mit automatischer Verzögerung von 500 ms zwischen den einzelnen Bildlaufs. Was ist der einfachste Weg, dies zu erreichen?

10

3 Antworten auf die Frage

8
cYrus

Eine einfache Lösung mit bash:

function scroll { while read -r ; do echo "$REPLY" ; sleep $ ; done } 

Verwendungszweck

long_command | scroll [delay] 

delayist optional und standardmäßig auf 0.5.

Beenden Sie mit Ctrl+C

Ich weiß nicht, warum meine Bearbeitung abgelehnt wird, aber seien Sie gewarnt, dass "echo / **" in Ihrer Ausgabe von long_command (z. B. "cat" eine Datei) hängen bleibt und Ihre Terminalsitzung überflutet, wenn Sie keine Anführungszeichen setzen `" $ REPLY "`. 林果皞 vor 6 Jahren 1
@ 林果 皞 hat die Warnung genehmigt und entfernt, danke. Ich hätte die Zitate zuerst hinzufügen sollen. cYrus vor 6 Jahren 1
... Ich habe die Warnung hinzugefügt, nur weil das System nicht nur 2 Zeichen bearbeiten darf. 林果皞 vor 6 Jahren 0
3
Nicole Hamilton

Wenn Sie mit einer Auflösung von 1s leben können, könnten Sie dies tun tail -n +0 -f -s <seconds>.

Die Ausgabe von "long_command" wird möglicherweise in weniger als einer Sekunde generiert. Es ist also sinnlos, jedes Mal die Vollständigkeit abzufragen`und funktioniert in der Tat nicht für mich. cYrus vor 11 Jahren 2
2
Thor

vimUm dies zu erreichen, können Sie ein entsprechendes Mapping verwenden:

vim -c 'map <S-f20> L:redraw<cr>:sleep 500m<cr><C-d><S-f20>' -c 'execute "normal \<S-f20>"' - 

Ctrl-dblättert jeweils eine halbe Seite, ersetzen Sie sie mit, 10jum jeweils 10 Zeilen zu blättern.