Esiste un comando cercapersone Unix a scorrimento automatico ritardato?


10

Vorrei vedere rallentato l'output di grandi comandi, come una presentazione con, ad esempio, un ritardo automatico di 500 ms tra ogni scorrimento. Qual è il modo più semplice per raggiungere questo obiettivo?

Risposte:


8

Una soluzione semplice che utilizza bash:

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

uso

long_command | scroll [delay]

delayè facoltativo e per impostazione predefinita è 0.5.

Esci con Ctrl+C


1
Non so perché la mia modifica venga rifiutata, ma ti avverto che echo /** nel tuo output di long_command (ad es. catUn file) si bloccherà e inonderà la tua sessione terminale se non inserisci doppie virgolette "$REPLY".
林果 皞

1
@ 林果 皞 approvato e rimosso l'avvertimento, grazie. Avrei dovuto aggiungere le virgolette in primo luogo.
cYrus,

... Ho aggiunto l'avviso solo perché il sistema non consente di modificare solo 2 caratteri.
皞 皞

4

Se riesci a vivere con una risoluzione di 1s, potresti farlo tail -n +0 -f -s <seconds>.


2
L'output da long_commandviene probabilmente generato in meno di un secondo, quindi non ha senso fare il polling per la sua completezza ogni <interval>e in effetti non funziona per me.
cYrus

2

È possibile utilizzare vimcon una mappatura appropriata per raggiungere questo obiettivo:

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

Ctrl-dscorre mezza pagina alla volta, sostituisci con 10jper scorrere 10 righe alla volta.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.