Чи є автоматично прокрутка, затримка в часі команди пейджера Unix?


10

Я хотів би побачити сповільнений вихід великих команд, як слайд-шоу, наприклад, з автоматичним затримкою 500 мс між кожним прокруткою. Який найпростіший спосіб досягти цього?

Відповіді:


8

Просте рішення з використанням bash:

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

Використання

long_command | scroll [delay]

delayє необов’язковим та за замовчуванням 0.5.

Вийдіть за допомогою Ctrl+C


1
Я не знаю, чому мою echo /** редакцію відхиляють, але попередимо, що у вашому висновку long_command (наприклад, catфайл) застрягне і заповнить ваш термінальний сеанс, якщо ви не ставите подвійних лапок "$REPLY".
林果 皞

1
@ 林果 皞 схвалив та видалив попередження, дякую. Я мав би додати цитати в першу чергу.
cYrus

... Я додав попередження лише тому, що система не дозволяє редагувати лише 2 символи.
林果 皞

4

Якщо ви можете жити з роздільною здатністю, ви можете зробити tail -n +0 -f -s <seconds>.


2
Вихід з long_command, можливо, генерується менше ніж за секунду, тому немає сенсу щорічно опитувати його повноту <interval>і справді не працює для мене.
cYrus

2

Ви можете скористатися vimвідповідним картографуванням, щоб досягти цього:

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

Ctrl-dпрокручує половину сторінки одночасно, замінюючи 10jна прокручування 10 рядків за один раз.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.