|
|
1.1 root 1: ;; vt200 series terminal stuff.
2: ;; April 1985, Joe Kelsey
3:
4: (defvar CSI-map nil
5: "The CSI-map maps the CSI function keys on the VT201 keyboard.
6: The CSI keys are the dark function keys, and are only active in
7: VT200-mode, except for the arrow keys. The functions provided are:
8:
9: Arrows: The obvious definitions: backward-char, next-line, forward-char,
10: previous-line.
11:
12: Editing Keys:
13: Find re-search-forward
14: Insert Here open-line
15: Remove kill-region
16: Select set-mark-command
17: Prev Screen scroll-up
18: Next Screen scroll-down
19:
20: Top row keys:
21: F11 ESC-prefix
22: Help help-command
23: Do eval-expression
24:
25: You can bind other function keys by doing:
26: (define-key CSI-map \"<key>\" '<function>)
27: where <key> is the function key with the CSI (<ESC>[) stripped off
28: and <function> is the name of the function to map the key to.")
29:
30: (defvar SS3-map nil
31: "SS3-map maps the SS3 function keys on the VT201 keyboard.
32: The SS3 keys are the numeric keypad keys in keypad application mode
33: (DECKPAM). SS3 is the ASCII-8bit character for the 7-bit escape
34: sequence <ESC>O. The functions provided are:
35:
36: -----------------------------------------------------------------
37: |PF1 |PF2 |PF3 |PF4 |
38: |beginning-of- | | | |
39: |line |end-of-line |isearch-forward|kill-line |
40: |---------------+---------------+---------------+---------------|
41: |7 |8 |9 |- |
42: |forward- |backward- | | |
43: |paragraph |paragraph |kill-region |kill-word |
44: |---------------+---------------+---------------+---------------|
45: |4 |5 |6 |, |
46: | |beginning-of- | | |
47: |end-of-buffer |buffer |yank |delete-char |
48: |---------------+---------------+---------------+---------------|
49: |1 |2 |3 |Enter |
50: | | | | |
51: |forward-word |backward-word |quoted-insert | |
52: |---------------+---------------+---------------| |
53: |0 |. | |
54: | |beginning-of- | |
55: |beginning-of-next-line |previous-line |open-line |
56: -----------------------------------------------------------------")
57:
58: (if (not CSI-map)
59: (progn
60: (setq CSI-map (make-keymap)) ;; <ESC>[ commands
61:
62: (define-key CSI-map "A" 'previous-line) ;; up arrow
63: (define-key CSI-map "B" 'next-line) ;; down-arrow
64: (define-key CSI-map "C" 'forward-char) ;; right-arrow
65: (define-key CSI-map "D" 'backward-char) ;; left-arrow
66:
67: (define-key CSI-map "1~" 're-search-forward) ;; Find
68: (define-key CSI-map "2~" 'open-line) ;; Insert Here
69: (define-key CSI-map "3~" 'kill-region) ;; Re-move
70:
71: (define-key CSI-map "4~" 'set-mark-command) ;; Select
72: (define-key CSI-map "5~" 'scroll-down) ;; Prev Screen
73: (define-key CSI-map "6~" 'scroll-up) ;; Next Screen
74:
75: (define-key CSI-map "23~" 'ESC-prefix) ;; F11 (ESC)
76:
77: (define-key CSI-map "28~" 'help-command) ;; Help
78: (define-key CSI-map "29~" 'eval-expression) ;; Do
79:
80: (setq SS3-map (make-keymap)) ;; <ESC>O commands
81:
82: (define-key SS3-map "A" 'previous-line) ;; up arrow
83: (define-key SS3-map "B" 'next-line) ;; down-arrow
84: (define-key SS3-map "C" 'forward-char) ;; right-arrow
85: (define-key SS3-map "D" 'backward-char) ;; left-arrow
86:
87: (define-key SS3-map "M" 'open-line) ;; Enter
88:
89: (define-key SS3-map "P" 'beginning-of-line) ;; PF1
90: (define-key SS3-map "Q" 'end-of-line) ;; PF2
91: (define-key SS3-map "R" 'isearch-forward) ;; PF3
92: (define-key SS3-map "S" 'kill-line) ;; PF4
93:
94: (define-key SS3-map "l" 'delete-char) ;; ,
95: (define-key SS3-map "m" 'kill-word) ;; -
96:
97: (define-key SS3-map "n" 'beginning-of-previous-line) ;; .
98: (define-key SS3-map "p" 'beginning-of-next-line) ;; 0
99:
100: (define-key SS3-map "q" 'forward-word) ;; 1
101: (define-key SS3-map "r" 'backward-word) ;; 2
102: (define-key SS3-map "s" 'quoted-insert) ;; 3
103:
104: (define-key SS3-map "t" 'end-of-buffer) ;; 4
105: (define-key SS3-map "u" 'beginning-of-buffer) ;; 5
106: (define-key SS3-map "v" 'yank) ;; 6
107:
108: (define-key SS3-map "w" 'forward-paragraph) ;; 7
109: (define-key SS3-map "x" 'backward-paragraph) ;; 8
110: (define-key SS3-map "y" 'kill-region) ;; 9
111:
112: (define-key global-map "\eO" SS3-map)
113: ))
114:
115: (defun vt200-enable-arrows ()
116: "Redefine Emacs so that VT200 arrow keys and function keys work.
117: This is not done automatically because it inescapably causes the
118: standard Emacs command ESC [ to stop working normally."
119: (interactive)
120: (define-key global-map "\e[" CSI-map))
121:
122:
123: (defun beginning-of-next-line ()
124: "Move to the beginning of the next line."
125: (interactive)
126: (forward-line 1))
127:
128: (defun beginning-of-previous-line ()
129: "Move to the beginning of the previous line."
130: (interactive)
131: (forward-line -1))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.