diff options
Diffstat (limited to 'lisp/term/vt100.el')
-rw-r--r-- | lisp/term/vt100.el | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el new file mode 100644 index 00000000000..435157c9663 --- /dev/null +++ b/lisp/term/vt100.el @@ -0,0 +1,66 @@ +;; Map VT100 function key escape sequences +;; into the standard slots in function-keymap. + +(require 'keypad) + +(defvar CSI-map nil + "The CSI-map maps the CSI function keys on the VT100 keyboard. +The CSI keys are the arrow keys.") + +(if (not CSI-map) + (progn + (setq CSI-map (lookup-key global-map "\e[")) + (if (not (keymapp CSI-map)) + (setq CSI-map (make-sparse-keymap))) ;; <ESC>[ commands + + (setup-terminal-keymap CSI-map + '(("A" . ?u) ; up arrow + ("B" . ?d) ; down-arrow + ("C" . ?r) ; right-arrow + ("D" . ?l))))) ; left-arrow + +(defun enable-arrow-keys () + "Enable the use of the VT100 arrow keys for cursor motion. +Because of the nature of the VT100, this unavoidably breaks +the standard Emacs command ESC [; therefore, it is not done by default, +but only if you give this command." + (interactive) + (global-set-key "\e[" CSI-map)) + +(defvar SS3-map nil + "SS3-map maps the SS3 function keys on the VT100 keyboard. +The SS3 keys are the numeric keypad keys in keypad application mode +\(DECKPAM). SS3 is DEC's name for the sequence <ESC>O which is +the common prefix of what these keys transmit.") + +(if (not SS3-map) + (progn + + (setq SS3-map (lookup-key global-map "\eO")) + (if (not (keymapp SS3-map)) + (setq SS3-map (make-keymap))) ;; <ESC>O commands + (setup-terminal-keymap SS3-map + '(("A" . ?u) ; up arrow + ("B" . ?d) ; down-arrow + ("C" . ?r) ; right-arrow + ("D" . ?l) ; left-arrow + ("M" . ?e) ; Enter + ("P" . ?\C-a) ; PF1 + ("Q" . ?\C-b) ; PF2 + ("R" . ?\C-c) ; PF3 + ("S" . ?\C-d) ; PF4 + ("l" . ?,) ; , + ("m" . ?-) ; - + ("n" . ?.) ; . + ("p" . ?0) ; 0 + ("q" . ?1) ; 1 + ("r" . ?2) ; 2 + ("s" . ?3) ; 3 + ("t" . ?4) ; 4 + ("u" . ?5) ; 5 + ("v" . ?6) ; 6 + ("w" . ?7) ; 7 + ("x" . ?8) ; 8 + ("y" . ?9))) ; 9 + + (define-key global-map "\eO" SS3-map))) |