Emacs Function Key Binding on RS/6000

Bill Wohler wohler at sapwdf.UUCP
Thu Feb 28 00:24:04 AEST 1991


  allow me to save you some work.  based upon sun.el, i came up with
  the following to bind the function keys to functions.  most of it
  you won't need to change, but you can give functions to the
  PF keys.

						--bw
						wohler at sap-ag.de

	----- my-x.el follows -----
(defvar x-esc-bracket t
  "*If non-nil, rebind ESC [ as prefix for X function keys.")

(defun ignore-key ()
  "interactive version of ignore"
  (interactive)
  (ignore))

(defvar num-state t)
(defun swap-num-keys () "Exchange meaning of Number keys."
  (interactive)
  (setq num-state
	(cond ((null num-state)
	       (define-key esc-map "On" 'ignore-key)		; comma
	       (define-key esc-map "Op" 'ignore-key)		; 0
	       (define-key esc-map "Oq" 'ignore-key)		; 1
	       (define-key esc-map "Or" 'ignore-key)		; 2
	       (define-key esc-map "Os" 'ignore-key)		; 3
	       (define-key esc-map "Ot" 'ignore-key)		; 4
	       (define-key esc-map "Ou" 'ignore-key)		; 5
	       ;;(define-key esc-map "Ov" 'ignore-key)		; 6 (page up!)
	       (define-key esc-map "Ow" 'ignore-key)		; 7
	       (define-key esc-map "Ox" 'ignore-key)		; 8
	       (define-key esc-map "Oy" 'ignore-key)		; 9
	       t)
	      (t
	       (define-key esc-map "On" 'delete-char)		; comma
	       (define-key esc-map "Op" 'ignore-key)		; 0
	       (define-key esc-map "Oq" 'end-of-buffer)		; 1
	       (define-key esc-map "Or" 'next-line)		; 2
	       (define-key esc-map "Os" 'scroll-up)		; 3
	       (define-key esc-map "Ot" 'backward-char)		; 4
	       (define-key esc-map "Ou" 'ignore-key)		; 5
	       ;;(define-key esc-map "Ov" 'forward-char)	; 6 (page up!)
	       (define-key esc-map "Ow" 'beginning-of-buffer)	; 7
	       (define-key esc-map "Ox" 'previous-line)		; 8
	       (define-key esc-map "Oy" 'scroll-down)		; 9
	       nil))))

(defvar x-raw-map (make-sparse-keymap) "*Keymap for ESC-[ encoded keyboard")
(define-key x-raw-map "A" 'previous-line)		; up arrow
(define-key x-raw-map "B" 'next-line)			; down arrow
(define-key x-raw-map "D" 'backward-char)		; left arrow
(define-key x-raw-map "C" 'forward-char)		; right arrow
(define-key x-raw-map "11~" 'help-for-help)		; F1
(define-key x-raw-map "12~" 'ignore-key)		; F2
(define-key x-raw-map "13~" 'ignore-key)		; F3
(define-key x-raw-map "14~" 'ignore-key)		; F4
(define-key x-raw-map "15~" 'ignore-key)		; F5
(define-key x-raw-map "17~" 'ignore-key)		; F6
(define-key x-raw-map "18~" 'ignore-key)		; F7
(define-key x-raw-map "19~" 'ignore-key)		; F8
(define-key x-raw-map "20~" 'ignore-key)		; F9
(define-key x-raw-map "21~" 'my-exit-emacs)		; F10
(define-key x-raw-map "23~" 'ignore-key)		; F11
(define-key x-raw-map "2~" 'ignore-key)			; insert
(define-key x-raw-map "\M-L" 'beginning-of-buffer)	; begin
(define-key x-raw-map "\M-\C-@" 'end-of-buffer)		; end

(if x-esc-bracket
    (progn
      (define-key esc-map "[" x-raw-map)		; Install x-raw-map
      (define-key esc-map "OP" 'swap-num-keys)		; num
      (define-key esc-map "OQ" 'ignore-key)		; div
      (define-key esc-map "OR" 'ignore-key)		; mult
      (define-key esc-map "OS" 'ignore-key)		; minus
      (define-key esc-map "Om" 'ignore-key)		; plus
      (define-key esc-map "OM" 'newline)		; enter
      (define-key esc-map "Ov" 'scroll-down)		; Page up
      (define-key esc-map "Ol" 'scroll-up)		; Page down
      (define-key esc-map "[[" 'backward-paragraph)	; the original esc-[
      (swap-num-keys)
      ))



More information about the Comp.unix.aix mailing list