view lisp/=sun-keys.el @ 18249:cb7e72b9a09d

Make view mode more similar to `less'. Changed documentation for most commands. (view-scroll-auto-exit): New variable, replaces view-mode-auto-exit. (view-mode-auto-exit): Variable deleted. (view-mode): Doesn't only toggle `view-mode', it also calls view-mode-enter or view-mode-exit. (view-buffer, view-buffer-other-window): New argument exit-action. (view-file, view-file-other-window, view-buffer-other-window) (view-buffer, view-mode-enter): Changed method used to restore windows when leaving view mode. (view-mode-exit): New function. (view-return-to-alist): New variable. (view-return-here, view-exit-position): Variables deleted. (view-remove-frame-by-deleting, view-exit-all-windows-at-exit): New option variables. (view-page-size, view-half-page-size): New variables. (view-scroll-size): Var deleted; replaced by the previous two. (view-mode-map): Make the bindings inside defvar. Added new commands and new key bindings. Added view-mode-exit to `change-major-mode-hook' to always leave view mode when changing major mode. (view-file-other-frame, view-buffer-other-frame): New commands. (View-leave, View-kill-and-leave, View-exit, View-exit-and-edit) (View-quit, View-quit-all): new commands for leaving view mode. (view-exit): Function deleted. (View-goto-percent, View-scroll-to-buffer-end): New commands. (view-try-extend-at-buffer-end): New option variable. (View-scroll-page-forward, View-scroll-page-backward) (View-scroll-page-forward-set-page-size) (View-scroll-page-backward-set-page-size, View-scroll-line-forward) (View-scroll-line-backward, View-scroll-half-page-forward) (View-scroll-half-page-backward) (View-revert-buffer-scroll-page-forward): New commands. (View-scroll-lines-forward, View-scroll-lines-backward) (View-scroll-lines-forward-set-scroll-size) (View-scroll-one-more-line): Commands deleted. (view-scroll-lines, view-end-message, view-page-size-default) (view-set-half-page-size-default, view-really-at-end) (view-recenter): New functions. (view-scroll-size): Variable deleted. (View-search-regexp-forward, View-search-regexp-backward) (View-search-last-regexp-forward, View-search-last-regexp-backward) (view-search): ! and @ are special at beginning of regexp. (view-search-no-match-lines): New function.
author Richard M. Stallman <rms@gnu.org>
date Sat, 14 Jun 1997 21:06:09 +0000
parents 2cdce064065f
children
line wrap: on
line source

;;; sun-keys.el --- support for Sun function keys

;;; Copyright (C) 1986 Free Software Foundation, Inc.

;; Author: Ian G. Batten <batten@uk.ac.bham.multics>
;; Keywords: terminals

;;; This file is part of GNU Emacs.

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to
;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.

;;; Commentary:

;;; Support (cleanly) for Sun function keys.  Provides help facilities,
;;; better diagnostics, etc.
;;;
;;; To use: make sure your .ttyswrc binds 'F1' to <ESC> * F1 <CR> and so on.
;;;         load this lot from your start_up

;;; Code:

(defun sun-function-keys-dispatch (arg)
  "Dispatcher for function keys."
  (interactive "p")
  (let* ((key-stroke (read t))
         (command (assq key-stroke sun-function-keys-command-list)))
    (cond (command (funcall (cdr command) arg))
          (t (error "Unbound function key %s" key-stroke)))))

(defvar sun-function-keys-command-list 
  '((F1 . sun-function-keys-describe-bindings)
    (R8 . previous-line)                ; arrow keys
    (R10 . backward-char)
    (R12 . forward-char)
    (R14 . next-line)))

(defun sun-function-keys-bind-key (arg1 arg2)
  "Bind a specified key."
  (interactive "xFunction Key Cap Label:
CCommand To Use:")
  (setq sun-function-keys-command-list 
        (cons (cons arg1 arg2) sun-function-keys-command-list)))

(defun sun-function-keys-describe-bindings (arg)
  "Describe the function key bindings we're running"
  (interactive)
  (with-output-to-temp-buffer "*Help*"
    (sun-function-keys-write-bindings
     (sort (copy-sequence sun-function-keys-command-list)
           '(lambda (x y) (string-lessp (car x) (car y)))))))

(defun sun-function-keys-write-bindings (list)
  (cond ((null list)
         t)
        (t
         (princ (format "%s: %s\n" 
                        (car (car list))
                        (cdr (car list))))
         (sun-function-keys-write-bindings (cdr list)))))
    
(global-set-key "\e*" 'sun-function-keys-dispatch)

(make-variable-buffer-local 'sun-function-keys-command-list)

;;; sun-keys.el ends here