(defun forward-page (&optional count) "\ Move forward to page boundary. With arg, repeat, or go back if negative. A page boundary is any line whose beginning matches the regexp page-delimiter." (interactive "p") (byte-code "Β ΔΕV m? , Ζ #! # dbS ΕW 5 o? V ΗΘ!Ι #K ΚΕ!bM ebT- " [count page-delimiter nil t 1 0 re-search-forward forward-char -1 re-search-backward match-end] 7)) (defun backward-page (&optional count) "\ Move backward to page boundary. With arg, repeat, or go fwd if negative. A page boundary is any line whose beginning matches the regexp page-delimiter." (interactive "p") (byte-code "Α ΒΓ[!" [count nil 1 forward-page] 2)) (defun mark-page (&optional arg) "\ Put mark at end of page, point at beginning. A numeric arg specifies to move forward or backward by that many pages, thus marking a page other than the one point was originally in." (interactive "P") (byte-code "Α Β! ΓΓV Δ!* ΓW) ΔS!* ΑΔ `sΔΕ!" [arg nil prefix-numeric-value 0 forward-page -1] 6)) (defun narrow-to-page (&optional arg) "\ Make text outside current page invisible. A numeric arg specifies to move forward or backward by that many pages, thus showing a page other than the one point was originally in." (interactive "P") (byte-code "Α Β! ΓΓV Δ!+ ΓW* ΔS!+ ΑΔ Ε Ζ`ΔΗ!`\")" [arg nil prefix-numeric-value 0 forward-page beginning-of-line narrow-to-region -1] 9)) (defun count-lines-page nil "\ Report number of lines on current page, and how many are before or after point." (interactive) (byte-code "Ζ`ΖΖΖΖΖΗ Θ `Ι `Κ \"Κ \"Κ \"ΛΜ $.)" [opoint beg end total before after nil forward-page beginning-of-line backward-page count-lines message "Page has %d lines (%d + %d)"] 11)) (defun what-page nil "\ Print page and line number of point." (interactive) (byte-code "ΔΕΔΖ Η `ΕbΘ # % T ΙΚΛ` \"T#))*" [count opoint page-delimiter t nil 1 widen beginning-of-line re-search-forward message "Page %d, line %d" count-lines] 9))