Xref: utzoo gnu.emacs.help:660 comp.emacs:9790 Path: utzoo!utgpu!news-server.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!qaeval.!robl From: robl@qaeval. (Rob LaMoreaux) Newsgroups: gnu.emacs.help,comp.emacs Subject: Emacs 18.55 keyboard config for Xenix/386 2.3.3 Message-ID: <9012271826.AA21323@qaeval.> Date: 27 Dec 90 21:26:20 GMT References: <1990Dec26.035256.459@m2xenix.psg.com> Sender: daemon@tut.cis.ohio-state.edu Followup-To: gnu.emacs.help Organization: Gatewayed from the GNU Project mailing list help-gnu-emacs@prep.ai.mit.edu Lines: 378 I have the meta key and all that working on Xenix/386 2.3.1, I haven't tried it yet on SCO Unix since I've had other things to do and my CMC ethernet cards won't work under Unix (lack of drivers). I have the function keys mapped the way I like them. I use F1 for help since I have CTRL-H mapped to backspace, and Delete used for Delete. Hope this helps. Here's what I've been using for ansi.el, keys, and keypad.el: ****ansi.el**** (setq meta-flag t) ;; ansi console terminal stuff. ;; April 1985, Joe Kelsey (require 'keypad) (defvar CSI-map nil "The CSI-map maps the CSI function keys on the ANSI keyboard. The CSI keys are the dark function keys, and are only active in ANSI-mode, except for the arrow keys.") (defun enable-arrow-keys () "Enable the use of the ANSI arrow keys and dark function keys. Because of the nature of the ANSI, 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)) ;; I suggest that someone establish standard mappings for all of ;; the ANSI CSI function keys into the function-keymap. (if CSI-map nil (setq CSI-map (make-keymap)) ; [ commands (setup-terminal-keymap CSI-map '(("A" . ?u) ; up arrow ("B" . ?d) ; down-arrow ("C" . ?r) ; right-arrow ("D" . ?l) ; left-arrow ("E" . ?C) ; 5-on keypad ("F" . ?\C-b) ; Select ("G" . ?N) ; Next Screen ("H" . ?\C-a) ; Home ("I" . ?P) ; Prev Screen ("L" . ?0) ; Insert Here ("M" . ??) ; (F1) Help ("N" . ?h) ; F2 ("O" . ?s) ; F3 ("P" . ?\C-h) ; F4 ("Q" . ?\C-o) ; F5 ("R" . ?s) ; F6 ("S" . ?1) ; F7 ("T" . ?3) ; F8 ("U" . ?7) ; F9 ("V" . ?9) ; F10 ("W" . ESC-prefix) ; F11 ("X" . ?k) ; Re-move ("Y" . ?\C-r) ; shift F1 ("Z" . ?\C-s) ; shift F2 ("a" . ?\C-t) ; shift F3 ("b" . ?\C-t) ; shift F3 ("c" . ?\C-t) ; shift F3 ("d" . ?\C-t) ; shift F3 ("e" . ?\C-t) ; shift F3 ("f" . ?\C-t) ; shift F3 ("g" . ?\C-t) ; shift F3 ("h" . ?\C-t) ; shift F3 ("i" . ?\C-t) ; shift F3 ("j" . ?\C-t) ; shift F3 ("k" . ?x) ; Do ("")))) **** keymap **** # alt # scan cntrl alt alt cntrl lock # code base shift cntrl shift alt shift cntrl shift state 0 nop nop nop nop nop nop nop nop O 1 esc esc nop nop 0x9b 0x9b nop nop O 2 '1' '!' nop nop 0xb1 0xa1 nop nop O 3 '2' '@' nul nul 0xb2 0xc0 0x80 0x80 O 4 '3' '#' nop nop 0xb3 0xa3 nop nop O 5 '4' '$' nop nop 0xb4 0xa4 nop nop O 6 '5' '%' nop nop 0xb5 0xa5 nop nop O 7 '6' '^' rs rs 0xb6 0xde 0xb3 0xa3 O 8 '7' '&' nop nop 0xb7 0xa6 nop nop O 9 '8' '*' nop nop 0xb8 0xaa nop nop O 10 '9' '(' nop nop 0xb9 0xa8 nop nop O 11 '0' ')' nop nop 0xb0 0xa9 nop nop O 12 '-' '_' ns ns 0xad 0xdf 0x9f 0x9f O 13 '=' '+' nop nop 0xbd 0xab nop nop O 14 bs bs del del 0x88 0x88 0xff 0xff O 15 ht btab nop nop 0x89 btab nop nop O 16 'q' 'Q' dc1 dc1 0xf1 0xd1 0x91 0x91 C 17 'w' 'W' etb etb 0xf7 0xd7 0x97 0x97 C 18 'e' 'E' enq enq 0xe5 0xc5 0x85 0x85 C 19 'r' 'R' dc2 dc2 0xf2 0xd2 0x92 0x92 C 20 't' 'T' dc4 dc4 0xf4 0xd4 0x94 0x94 C 21 'y' 'Y' em em 0xf9 0xd9 0x99 0x99 C 22 'u' 'U' nak nak 0xf5 0xd5 0x95 0x95 C 23 'i' 'I' ht ht 0xe9 0xc9 0x89 0x89 C 24 'o' 'O' si si 0xef 0xcf 0x8f 0x8f C 25 'p' 'P' dle dle 0xf0 0xd0 0x90 0x90 C 26 '[' '{' esc esc 0xdb 0xfb 0x9b 0x9b O 27 ']' '}' gs gs 0xdd 0xfd 0x9d 0x9d O 28 cr cr nl nl 0x8d 0x8d 0x8a 0x8a O 29 lctrl lctrl lctrl lctrl lctrl lctrl lctrl lctrl O 30 'a' 'A' soh soh 0xe1 0xc1 0x81 0x81 C 31 's' 'S' dc3 dc3 0xf3 0xd3 0x93 0x93 C 32 'd' 'D' eot eot 0xe4 0xc4 0x84 0x84 C 33 'f' 'F' ack ack 0xe6 0xc6 0x86 0x86 C 34 'g' 'G' bel bel 0xe7 0xc7 0x87 0x87 C 35 'h' 'H' bs bs 0xe8 0xc8 0x88 0x88 C 36 'j' 'J' nl nl 0xea 0xca 0x8a 0x8a C 37 'k' 'K' vt vt 0xeb 0xcb 0x8b 0x8b C 38 'l' 'L' np np 0xec 0xcc 0x8c 0x8c C 39 ';' ':' nop nop 0xbb 0xba nop nop O 40 '\'' '"' nop nop 0xa7 0xa2 nop nop O 41 '`' '~' nop nop 0xe0 0xfe nop nop O 42 lshift lshift lshift lshift lshift lshift lshift lshift O 43 '\\' '|' fs fs 0xdc 0xfc 0x9c 0x9c O 44 'z' 'Z' sub sub 0xfa 0xda 0x9a 0x9a C 45 'x' 'X' can can 0xf8 0xd8 0x98 0x98 C 46 'c' 'C' etx etx 0xe3 0xc3 0x83 0x83 C 47 'v' 'V' syn syn 0xf6 0xd6 0x96 0x96 C 48 'b' 'B' stx stx 0xe2 0xc2 0x82 0x82 C 49 'n' 'N' so so 0xee 0xce 0x8e 0x8e C 50 'm' 'M' cr cr 0xed 0xcd 0x8d 0x8d C 51 ',' '<' nop nop 0xac 0xbc nop nop O 52 '.' '>' nop nop 0xae 0xbe nop nop O 53 '/' '?' nop nop 0xaf 0xbf nop nop O 54 rshift rshift rshift rshift rshift rshift rshift rshift O 55 '*' '*' nscr nscr 0xaa 0xaa nscr nscr O 56 lalt lalt lalt lalt lalt lalt lalt lalt O 57 ' ' ' ' ' ' ' ' 0xa0 0xa0 0xa0 0xa0 O 58 clock clock clock clock clock clock clock clock O 59 fkey1 fkey13 fkey25 fkey37 scr1 scr11 scr1 scr11 O 60 fkey2 fkey14 fkey26 fkey38 scr2 scr12 scr2 scr12 O 61 fkey3 fkey15 fkey27 fkey39 scr3 scr13 scr3 scr13 O 62 fkey4 fkey16 fkey28 fkey40 scr4 scr14 scr4 scr14 O 63 fkey5 fkey17 fkey29 fkey41 scr5 scr15 scr5 scr15 O 64 fkey6 fkey18 fkey30 fkey42 scr6 scr16 scr6 scr16 O 65 fkey7 fkey19 fkey31 fkey43 scr7 scr7 scr7 scr7 O 66 fkey8 fkey20 fkey32 fkey44 scr8 scr8 scr8 scr8 O 67 fkey9 fkey21 fkey33 fkey45 scr9 scr9 scr9 scr9 O 68 fkey10 fkey22 fkey34 fkey46 scr10 scr10 scr10 scr10 O 69 nlock nlock dc3 dc3 nlock nlock 0x93 0x93 O 70 slock slock del del slock slock 0xff 0xff O 71 fkey49 '7' '7' '7' 0xb7 0xb7 0xb7 0xb7 N 72 fkey50 '8' '8' '8' 0xb8 0xb8 0xb8 0xb8 N 73 fkey51 '9' '9' '9' 0xb9 0xb9 0xb9 0xb9 N 74 fkey52 '-' '-' '-' 0xad 0xad 0xad 0xad N 75 fkey53 '4' '4' '4' 0xb4 0xb4 0xb4 0xb4 N 76 fkey54 '5' '5' '5' 0xb5 0xb5 0xb5 0xb5 N 77 fkey55 '6' '6' '6' 0xb6 0xb6 0xb6 0xb6 N 78 fkey56 '+' '+' '+' 0xab 0xab 0xab 0xab N 79 fkey57 '1' '1' '1' 0xb1 0xb1 0xb1 0xb1 N 80 fkey58 '2' '2' '2' 0xb2 0xb2 0xb2 0xb2 N 81 fkey59 '3' '3' '3' 0xb3 0xb3 0xb3 0xb3 N 82 fkey60 '0' '0' '0' 0xb0 0xb0 0xb0 0xb0 N 83 del '.' del del 0xff 0xff 0xff 0xff N 84 nop nop nop nop nop nop nop nop O 85 nop nop nop nop nop nop nop nop O 86 nop nop nop nop nop nop nop nop O 87 fkey11 fkey23 fkey35 fkey47 scr11 scr11 scr11 scr11 O 88 fkey12 fkey24 fkey36 fkey48 scr12 scr12 scr12 scr12 O 89 nop nop nop nop nop nop nop nop O 90 nop nop nop nop nop nop nop nop O 91 nop nop nop nop nop nop nop nop O 92 nop nop nop nop nop nop nop nop O 93 nop nop nop nop nop nop nop nop O 94 nop nop nop nop nop nop nop nop O 95 nop nop nop nop nop nop nop nop O 96 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 O 97 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 O 98 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 O 99 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 O 100 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 O 101 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 O 102 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 O 103 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 O 104 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 O 105 del del del del del del del del O 106 fkey54 fkey54 fkey54 fkey54 fkey54 fkey54 fkey54 fkey54 O 107 nop nop nop nop nop nop nop nop O 108 nop nop nop nop nop nop nop nop O 109 nop nop nop nop nop nop nop nop O 110 nop nop nop nop nop nop nop nop O 111 nop nop nop nop nop nop nop nop O 112 nop nop nop nop nop nop nop nop O 113 nop nop nop nop nop nop nop nop O 114 nop nop nop nop nop nop nop nop O 115 nop nop nop nop nop nop nop nop O 116 nop nop nop nop nop nop nop nop O 117 nop nop nop nop nop nop nop nop O 118 nop nop nop nop nop nop nop nop O 119 nop nop nop nop nop nop nop nop O 120 nop nop nop nop nop nop nop nop O 121 nop nop nop nop nop nop nop nop O 122 nop nop nop nop nop nop nop nop O 123 nop nop nop nop nop nop nop nop O 124 nop nop nop nop nop nop nop nop O 125 nop nop nop nop nop nop nop nop O 126 nop nop nop nop nop nop nop nop O 127 nop nop nop nop nop nop nop nop O 128 rctrl rctrl rctrl rctrl rctrl rctrl rctrl rctrl O 129 ralt ralt ralt ralt ralt ralt ralt ralt O 130 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 fkey60 N 131 del del del del del del del del N 132 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 fkey49 N 133 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 fkey57 N 134 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 fkey51 N 135 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 fkey59 N 136 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 fkey55 N 137 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 fkey53 N 138 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 fkey50 N 139 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 fkey58 N 140 '/' nop nop nop '/' nop nop nop N **** keypad.el **** ;; Terminal-independent keypad and function key bindings. ;; Copyright (C) 1986 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY. No author or distributor ;; accepts responsibility to anyone for the consequences of using it ;; or for whether it serves any particular purpose or works at all, ;; unless he says so in writing. Refer to the GNU Emacs General Public ;; License for full details. ;; Everyone is granted permission to copy, modify and redistribute ;; GNU Emacs, but only under the conditions described in the ;; GNU Emacs General Public License. A copy of this license is ;; supposed to have been given to you along with GNU Emacs so you ;; can know your rights and responsibilities. It should be in a ;; file named COPYING. Among other things, the copyright notice ;; and this notice must be preserved on all copies. ;; These keys are handled by a two-level process. ;; The first level, terminal-dependent, maps input sequences ;; into the function keys that they represent. ;; The second level, terminal-independent but customized by users, ;; map function keys into meanings. ;; This file takes care of the second level of mapping. ;; The first, terminal-dependent, level is handled by the ;; terminal-specific files term/*.el. ;; The second-level mapping is done by a keymap, function-keymap. ;; Here we document the meanings of the "characters" defined by ;; function-keymap. ;; What do these letters mean? ;; When we say that ``a stands for the clear-all-tabs key'', ;; we mean that you should attach to the letter `a' in function-keymap ;; whatever command you want to be executed when you type the ;; clear-all-tabs key on any terminal. The terminal-dependent ;; files will attempt to make this work. If a terminal has no ;; clear-all-tabs key that can be recognized, it makes no difference ;; what binding you give to `a' in function-keymap. ;; a -- clear all tabs key ;; c -- erase key ;; d -- down-arrow ;; e -- enter key ;; f -- find key or search key ;; h -- home-position key ;; k -- delete key or remove key. ;; l -- left-arrow ;; p -- portrait mode ;; q -- landscape mode ;; r -- right-arrow ;; s -- select key ;; t -- clear tab this column key ;; u -- up-arrow ;; x -- do key ;; ? -- help ;; - -- keypad key labelled `-'. ;; . -- keypad key labelled `.'. ;; , -- keypad key labelled `,'. ;; 0 ... 9 -- keypad key labelled with that digit, ;; but only if that key is not also an arrow key. ;; C-@, C-a, ... C-x -- numbered function keys 0 through 24. ;; These are used for function keys with no labels but numbers, ;; and may also be used for function keys with labels ;; that we have not defined letters for. ;; A -- insert line key ;; C -- clear screen key ;; D -- delete character key. ;; E -- clear to end of line key ;; F -- scroll forward key ;; H -- home-down ;; I -- insert character key ;; If there is just an "insert" key, it should be this. ;; L -- delete line key ;; M -- exit insert mode key ;; N -- next page key ;; P -- previous page key ;; R -- scroll reverse key ;; S -- clear to end of screen key ;; T -- set tab this column key (defun keypad-default (char definition) (or (lookup-key function-keymap char) (define-key function-keymap char definition))) ;; Here are the standard command meanings we give to the various ;; function key names. Because this file is loaded after the user's ;; init file, we are careful to avoid overriding any definitions ;; already stored in function-keymap by the init file or (less often) ;; by the terminal-specific term/*.el file. (keypad-default "l" 'backward-char) (keypad-default "r" 'forward-char) (keypad-default "D" 'delete-char) (keypad-default "u" 'previous-line) (keypad-default "d" 'next-line) (keypad-default "N" 'scroll-up) (keypad-default "P" 'scroll-down) (keypad-default "C" 'recenter) (keypad-default "?" 'help-for-help) (keypad-default "s" 'set-mark-command) (keypad-default "k" 'kill-region) (keypad-default "f" 're-search-forward) (keypad-default "\C-a" 'beginning-of-line) (keypad-default "\C-b" 'end-of-line) (keypad-default "\C-c" 'isearch-forward) (keypad-default "\C-d" 'kill-line) (keypad-default "." 'delete-char) (keypad-default "0" 'yank) (keypad-default "e" 'open-line) (keypad-default "1" 'backward-word) (keypad-default "3" 'forward-word) (keypad-default "7" 'backward-paragraph) (keypad-default "9" 'forward-paragraph) (keypad-default "h" 'move-to-window-line) (defun setup-terminal-keymap (map translations) "Set up keymap MAP to forward to function-keymap according to TRANSLATIONS. TRANSLATIONS is an alist; each element of it looks like (FROMSTRING . TOCHAR). For each such pair, we define the key sequence FROMSTRING in MAP to forward to the definition of character TOCHAR in function-keymap. \"Forwarding\" means that subsequent redefinition of TOCHAR in function-keymap will be seen automatically in MAP as well. This function is used by files term/*.el to set up the mapping from the escape sequences sent by function keys on particular terminals (FROMSTRINGs) into Emacs standard function key slots (TOCHARs). An actual definition (such as a symbol) may be given in place of TOCHAR. Generally, MAP is a prefix keymap which will be attached to a key that is the common prefix sent by all function keys (often ESC O or ESC [)." (while translations (define-key map (car (car translations)) (if (numberp (cdr (car translations))) (cons function-keymap (cdr (car translations))) (cdr (car translations)))) (setq translations (cdr translations)))) (defun function-key-sequence (char) "Return key sequence for function key that on this terminal translates into slot CHAR in function-keymap. Or return nil if there is none." (car (where-is-internal (cons function-keymap char) (current-local-map)))) (provide 'keypad) ****************************** Rob LaMoreaux Heath/Zenith Data Systems Q.A. Evaluation (616)-982-3187 ..uunet!zds-ux!qaeval!robl #include