;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;; ;; File: more.el ;; ;; Author: Wolfgang S. Rupprecht ;; ;; Created: Thu Nov 19 20:01:59 EST 1987 ;; ;; Contents: just like more(1). Doesn't do a recursive edit. ;; ;; ;; ;; Copyright (c) 1987 Wolfgang S. Rupprecht. ;; ;; All rights reserved. ;; ;; ;; ;; $Log$ ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (defvar more-mode-map nil "Keymap for more mode.") (defvar more-mode-hook nil "Functions to call when entering more mode. ") (if more-mode-map nil (setq more-mode-map (make-keymap)) (suppress-keymap more-mode-map) (define-key more-mode-map " " 'scroll-up) (define-key more-mode-map "b" 'scroll-down) (define-key more-mode-map "/" 'isearch-forward-regexp) (define-key more-mode-map "v" '(lambda () (interactive) (message "You're Joking? Right?") (ding))) (define-key more-mode-map "q" 'more-quit) (define-key more-mode-map "\177" 'scroll-down)) (defun more-buffer (buffer) "Run More on a buffer." (interactive "bbuffer to More: ") (switch-to-buffer buffer) (more-mode)) (defun more-file (file) "Run More on a file." (interactive "fFile to More: ") (find-file file) (setq major-mode nil) ; key to more-mode to nuke ; buffer on quit. (more-mode)) (defun more-mode () "Set current buffer to more mode. The more-mode key bindings are: \\{more-mode-map}" (interactive) (make-local-variable 'old-major-mode) (setq old-major-mode major-mode) (setq major-mode 'more-mode) (setq mode-name "More") (make-local-variable 'old-buffer-read-only) (setq old-buffer-read-only buffer-read-only) (setq buffer-read-only t) (use-local-map more-mode-map) (if more-mode-hook (run-hooks more-mode-hook)) (set-buffer-modified-p (buffer-modified-p))) (defun more-quit () "Exit more mode." (interactive) (if (eq major-mode 'more-mode) (progn (setq buffer-read-only old-buffer-read-only) (if old-major-mode (funcall old-major-mode) (kill-buffer (current-buffer))) (set-buffer-modified-p (buffer-modified-p))) (error "This buffer is NOT in more mode!"))) (defun more-nop () "Do nut'n. Just gripe." (interactive) (ding)) (defun dired-more-file () "In dired, 'more' the file named on this line." (interactive) (if (save-excursion (beginning-of-line) (looking-at " d")) (dired (dired-get-filename)) (more-file (dired-get-filename))))