Có một lệnh pager Unix tự động cuộn, bị trì hoãn thời gian không?


10

Tôi muốn xem đầu ra của các lệnh lớn bị chậm lại, như trình chiếu với ví dụ tự động, độ trễ 500ms giữa mỗi lần cuộn. Cách đơn giản nhất để đạt được điều này là gì?

Câu trả lời:


8

Một giải pháp đơn giản sử dụng bash:

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

Sử dụng

long_command | scroll [delay]

delaylà tùy chọn và mặc định là 0.5.

Thoát với Ctrl+C


1
Tôi không biết lý do tại sao bản chỉnh sửa của mình bị từ chối, nhưng được cảnh báo rằng echo /** trong đầu ra của long_command (ví dụ: catmột tệp) sẽ bị kẹt và làm ngập phiên cuối của bạn nếu bạn không đặt dấu ngoặc kép "$REPLY".
林果

1
@ 林果 chấp thuận và xóa cảnh báo, cảm ơn. Tôi nên đã thêm các trích dẫn ở vị trí đầu tiên.
cYrus

... Tôi đã thêm cảnh báo chỉ vì hệ thống không cho phép chỉnh sửa chỉ 2 ký tự.
林果 皞 23/03/18

4

Nếu bạn có thể sống với độ phân giải 1s, bạn có thể làm tail -n +0 -f -s <seconds>.


2
Đầu ra từ long_commandcó thể được tạo ra trong chưa đầy một giây vì vậy không có điểm nào trong việc bỏ phiếu cho tính hoàn chỉnh của nó <interval>và thực sự không hiệu quả với tôi.
cYrus

2

Bạn có thể sử dụng vimvới một ánh xạ thích hợp để đạt được điều này:

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

Ctrl-dcuộn một nửa trang mỗi lần, thay thế bằng 10jcách cuộn 10 dòng một lần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.