(defun pjb-animate (speed) (interactive "nSpeed: ") (let ((delay (/ 1.0 speed)) (done nil)) (widen) (goto-char (point-min)) (message "Animating...") (while (not done) (widen) (if (search-forward "\f" nil 'at-limit) nil (goto-char (point-max)) (setq done t)) (narrow-to-page) (sit-for delay) (force-mode-line-update t)) (message "Done.")))