Apakah ada perintah pager Unix yang bergulir secara otomatis dan tertunda waktu?

10

Saya ingin melihat output dari perintah besar melambat, seperti tayangan slide dengan misalnya otomatis, 500 ms penundaan antara setiap gulir. Apa cara paling sederhana untuk mencapai ini?

Blazej Wieliczko
sumber

Jawaban:

8

Solusi sederhana menggunakan bash:

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

Pemakaian

long_command | scroll [delay]

delaybersifat opsional dan standarnya adalah 0.5.

Keluar dengan Ctrl+C

cYrus
sumber
1
Saya tidak tahu mengapa hasil edit saya ditolak, tetapi berhati-hatilah echo /** dalam output long_command (misalnya catfile) Anda akan macet dan membanjiri sesi terminal Anda jika Anda tidak menggunakan tanda kutip ganda "$REPLY".
林果 皞
1
@ 林果 皞 menyetujui dan menghapus peringatan, terima kasih. Saya seharusnya menambahkan kutipan di tempat pertama.
cYrus
... Saya menambahkan peringatan hanya karena sistem tidak mengizinkan pengeditan hanya 2 karakter.
林果 皞
4

Jika Anda dapat hidup dengan resolusi 1s, Anda bisa melakukannya tail -n +0 -f -s <seconds>.

Nicole Hamilton
sumber
2
Output dari long_commandmungkin dihasilkan dalam waktu kurang dari satu detik sehingga tidak ada gunanya polling untuk kelengkapannya setiap <interval>dan memang tidak bekerja untuk saya.
cYrus
2

Anda dapat menggunakan vimpemetaan yang sesuai untuk mencapai hal ini:

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

Ctrl-d10jgulir setengah halaman sekaligus, ganti dengan untuk menggulir 10 baris sekaligus.

Thor
sumber