comparison lisp/term/xterm.el @ 83328:f2eb4324cbaf

Speed up loading of term/xterm.el (Dan Nicolaescu). * lisp/term/xterm.el: Move key substitutions back before the define-keys. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-368
author Karoly Lorentey <lorentey@elte.hu>
date Tue, 28 Jun 2005 15:06:17 +0000
parents 950de36a755d
children dbb941c7c73c
comparison
equal deleted inserted replaced
83327:950de36a755d 83328:f2eb4324cbaf
28 28
29 (require 'server) 29 (require 'server)
30 30
31 (defvar xterm-function-map nil 31 (defvar xterm-function-map nil
32 "Function key map overrides for xterm.") 32 "Function key map overrides for xterm.")
33
34 ;; Make reloads faster.
35 (unless xterm-function-map
36 (setq xterm-function-map (make-sparse-keymap))
37
38 (define-key xterm-function-map "\e[A" [up])
39 (define-key xterm-function-map "\e[B" [down])
40 (define-key xterm-function-map "\e[C" [right])
41 (define-key xterm-function-map "\e[D" [left])
42 (define-key xterm-function-map "\e[1~" [home])
43 (define-key xterm-function-map "\e[2~" [insert])
44 (define-key xterm-function-map "\e[3~" [delete])
45 (define-key xterm-function-map "\e[4~" [select])
46 (define-key xterm-function-map "\e[5~" [prior])
47 (define-key xterm-function-map "\e[6~" [next])
48 (define-key xterm-function-map "\e[11~" [f1])
49 (define-key xterm-function-map "\e[12~" [f2])
50 (define-key xterm-function-map "\e[13~" [f3])
51 (define-key xterm-function-map "\e[14~" [f4])
52 (define-key xterm-function-map "\e[15~" [f5])
53 (define-key xterm-function-map "\e[17~" [f6])
54 (define-key xterm-function-map "\e[18~" [f7])
55 (define-key xterm-function-map "\e[19~" [f8])
56 (define-key xterm-function-map "\e[20~" [f9])
57 (define-key xterm-function-map "\e[21~" [f10])
58 (define-key xterm-function-map "\e[23~" [f11])
59 (define-key xterm-function-map "\e[24~" [f12])
60 (define-key xterm-function-map "\e[29~" [print])
61
62 (define-key xterm-function-map "\eOP" [f1])
63 (define-key xterm-function-map "\eOQ" [f2])
64 (define-key xterm-function-map "\eOR" [f3])
65 (define-key xterm-function-map "\eOS" [f4])
66
67 (define-key xterm-function-map "\eO2P" [S-f1])
68 (define-key xterm-function-map "\eO2Q" [S-f2])
69 (define-key xterm-function-map "\eO2R" [S-f3])
70 (define-key xterm-function-map "\eO2S" [S-f4])
71 (define-key xterm-function-map "\e[15;2~" [S-f5])
72 (define-key xterm-function-map "\e[17;2~" [S-f6])
73 (define-key xterm-function-map "\e[18;2~" [S-f7])
74 (define-key xterm-function-map "\e[19;2~" [S-f8])
75 (define-key xterm-function-map "\e[20;2~" [S-f9])
76 (define-key xterm-function-map "\e[21;2~" [S-f10])
77 (define-key xterm-function-map "\e[23;2~" [S-f11])
78 (define-key xterm-function-map "\e[24;2~" [S-f12])
79
80 (define-key xterm-function-map "\eO5P" [C-f1])
81 (define-key xterm-function-map "\eO5Q" [C-f2])
82 (define-key xterm-function-map "\eO5R" [C-f3])
83 (define-key xterm-function-map "\eO5S" [C-f4])
84 (define-key xterm-function-map "\e[15;5~" [C-f5])
85 (define-key xterm-function-map "\e[17;5~" [C-f6])
86 (define-key xterm-function-map "\e[18;5~" [C-f7])
87 (define-key xterm-function-map "\e[19;5~" [C-f8])
88 (define-key xterm-function-map "\e[20;5~" [C-f9])
89 (define-key xterm-function-map "\e[21;5~" [C-f10])
90 (define-key xterm-function-map "\e[23;5~" [C-f11])
91 (define-key xterm-function-map "\e[24;5~" [C-f12])
92
93 (define-key xterm-function-map "\eO6P" [C-S-f1])
94 (define-key xterm-function-map "\eO6Q" [C-S-f2])
95 (define-key xterm-function-map "\eO6R" [C-S-f3])
96 (define-key xterm-function-map "\eO6S" [C-S-f4])
97 (define-key xterm-function-map "\e[15;6~" [C-S-f5])
98 (define-key xterm-function-map "\e[17;6~" [C-S-f6])
99 (define-key xterm-function-map "\e[18;6~" [C-S-f7])
100 (define-key xterm-function-map "\e[19;6~" [C-S-f8])
101 (define-key xterm-function-map "\e[20;6~" [C-S-f9])
102 (define-key xterm-function-map "\e[21;6~" [C-S-f10])
103 (define-key xterm-function-map "\e[23;6~" [C-S-f11])
104 (define-key xterm-function-map "\e[24;6~" [C-S-f12])
105
106 (define-key xterm-function-map "\eO3P" [A-f1])
107 (define-key xterm-function-map "\eO3Q" [A-f2])
108 (define-key xterm-function-map "\eO3R" [A-f3])
109 (define-key xterm-function-map "\eO3S" [A-f4])
110 (define-key xterm-function-map "\e[15;3~" [A-f5])
111 (define-key xterm-function-map "\e[17;3~" [A-f6])
112 (define-key xterm-function-map "\e[18;3~" [A-f7])
113 (define-key xterm-function-map "\e[19;3~" [A-f8])
114 (define-key xterm-function-map "\e[20;3~" [A-f9])
115 (define-key xterm-function-map "\e[21;3~" [A-f10])
116 (define-key xterm-function-map "\e[23;3~" [A-f11])
117 (define-key xterm-function-map "\e[24;3~" [A-f12])
118
119 (define-key xterm-function-map "\e[1;2A" [S-up])
120 (define-key xterm-function-map "\e[1;2B" [S-down])
121 (define-key xterm-function-map "\e[1;2C" [S-right])
122 (define-key xterm-function-map "\e[1;2D" [S-left])
123 (define-key xterm-function-map "\e[1;2F" [S-end])
124 (define-key xterm-function-map "\e[1;2H" [S-home])
125
126 (define-key xterm-function-map "\e[1;5A" [C-up])
127 (define-key xterm-function-map "\e[1;5B" [C-down])
128 (define-key xterm-function-map "\e[1;5C" [C-right])
129 (define-key xterm-function-map "\e[1;5D" [C-left])
130 (define-key xterm-function-map "\e[1;5F" [C-end])
131 (define-key xterm-function-map "\e[1;5H" [C-home])
132
133 (define-key xterm-function-map "\e[1;6A" [C-S-up])
134 (define-key xterm-function-map "\e[1;6B" [C-S-down])
135 (define-key xterm-function-map "\e[1;6C" [C-S-right])
136 (define-key xterm-function-map "\e[1;6D" [C-S-left])
137 (define-key xterm-function-map "\e[1;6F" [C-S-end])
138 (define-key xterm-function-map "\e[1;6H" [C-S-home])
139
140 (define-key xterm-function-map "\e[1;3A" [A-up])
141 (define-key xterm-function-map "\e[1;3B" [A-down])
142 (define-key xterm-function-map "\e[1;3C" [A-right])
143 (define-key xterm-function-map "\e[1;3D" [A-left])
144 (define-key xterm-function-map "\e[1;3F" [A-end])
145 (define-key xterm-function-map "\e[1;3H" [A-home])
146
147 (define-key xterm-function-map "\e[2;2~" [S-insert])
148 (define-key xterm-function-map "\e[3;2~" [S-delete])
149 (define-key xterm-function-map "\e[5;2~" [S-prior])
150 (define-key xterm-function-map "\e[6;2~" [S-next])
151
152 (define-key xterm-function-map "\e[2;5~" [C-insert])
153 (define-key xterm-function-map "\e[3;5~" [C-delete])
154 (define-key xterm-function-map "\e[5;5~" [C-prior])
155 (define-key xterm-function-map "\e[6;5~" [C-next])
156
157 (define-key xterm-function-map "\e[2;6~" [C-S-insert])
158 (define-key xterm-function-map "\e[3;6~" [C-S-delete])
159 (define-key xterm-function-map "\e[5;6~" [C-S-prior])
160 (define-key xterm-function-map "\e[6;6~" [C-S-next])
161
162 (define-key xterm-function-map "\e[2;3~" [A-insert])
163 (define-key xterm-function-map "\e[3;3~" [A-delete])
164 (define-key xterm-function-map "\e[5;3~" [A-prior])
165 (define-key xterm-function-map "\e[6;3~" [A-next])
166
167 (define-key xterm-function-map "\eOA" [up])
168 (define-key xterm-function-map "\eOB" [down])
169 (define-key xterm-function-map "\eOC" [right])
170 (define-key xterm-function-map "\eOD" [left])
171 (define-key xterm-function-map "\eOF" [end])
172 (define-key xterm-function-map "\eOH" [home])
173
174 (define-key xterm-function-map "\eO2A" [S-up])
175 (define-key xterm-function-map "\eO2B" [S-down])
176 (define-key xterm-function-map "\eO2C" [S-right])
177 (define-key xterm-function-map "\eO2D" [S-left])
178 (define-key xterm-function-map "\eO2F" [S-end])
179 (define-key xterm-function-map "\eO2H" [S-home])
180
181 (define-key xterm-function-map "\eO5A" [C-up])
182 (define-key xterm-function-map "\eO5B" [C-down])
183 (define-key xterm-function-map "\eO5C" [C-right])
184 (define-key xterm-function-map "\eO5D" [C-left])
185 (define-key xterm-function-map "\eO5F" [C-end])
186 (define-key xterm-function-map "\eO5H" [C-home]))
187
188 ;; Use inheritance to let the main keymap override those defaults.
189 ;; This way we don't override terminfo-derived settings or settings
190 ;; made in the .emacs file.
191 (let ((m (copy-keymap xterm-function-map)))
192 (set-keymap-parent m (keymap-parent (terminal-local-value 'function-key-map nil)))
193 (set-keymap-parent (terminal-local-value 'function-key-map nil) m))
194 33
195 ;; The terminal intialization C code file might have initialized 34 ;; The terminal intialization C code file might have initialized
196 ;; function keys F13->F60 from the termcap/terminfo information. On 35 ;; function keys F13->F60 from the termcap/terminfo information. On
197 ;; a PC-style keyboard these keys correspond to 36 ;; a PC-style keyboard these keys correspond to
198 ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The 37 ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The
254 (substitute-key-definition [f57] [A-f9] m) 93 (substitute-key-definition [f57] [A-f9] m)
255 (substitute-key-definition [f58] [A-f10] m) 94 (substitute-key-definition [f58] [A-f10] m)
256 (substitute-key-definition [f59] [A-f11] m) 95 (substitute-key-definition [f59] [A-f11] m)
257 (substitute-key-definition [f60] [A-f12] m))) 96 (substitute-key-definition [f60] [A-f12] m)))
258 97
98 ;; Make reloads faster.
99 (unless xterm-function-map
100 (setq xterm-function-map (make-sparse-keymap))
101
102 (define-key xterm-function-map "\e[A" [up])
103 (define-key xterm-function-map "\e[B" [down])
104 (define-key xterm-function-map "\e[C" [right])
105 (define-key xterm-function-map "\e[D" [left])
106 (define-key xterm-function-map "\e[1~" [home])
107 (define-key xterm-function-map "\e[2~" [insert])
108 (define-key xterm-function-map "\e[3~" [delete])
109 (define-key xterm-function-map "\e[4~" [select])
110 (define-key xterm-function-map "\e[5~" [prior])
111 (define-key xterm-function-map "\e[6~" [next])
112 (define-key xterm-function-map "\e[11~" [f1])
113 (define-key xterm-function-map "\e[12~" [f2])
114 (define-key xterm-function-map "\e[13~" [f3])
115 (define-key xterm-function-map "\e[14~" [f4])
116 (define-key xterm-function-map "\e[15~" [f5])
117 (define-key xterm-function-map "\e[17~" [f6])
118 (define-key xterm-function-map "\e[18~" [f7])
119 (define-key xterm-function-map "\e[19~" [f8])
120 (define-key xterm-function-map "\e[20~" [f9])
121 (define-key xterm-function-map "\e[21~" [f10])
122 (define-key xterm-function-map "\e[23~" [f11])
123 (define-key xterm-function-map "\e[24~" [f12])
124 (define-key xterm-function-map "\e[29~" [print])
125
126 (define-key xterm-function-map "\eOP" [f1])
127 (define-key xterm-function-map "\eOQ" [f2])
128 (define-key xterm-function-map "\eOR" [f3])
129 (define-key xterm-function-map "\eOS" [f4])
130
131 (define-key xterm-function-map "\eO2P" [S-f1])
132 (define-key xterm-function-map "\eO2Q" [S-f2])
133 (define-key xterm-function-map "\eO2R" [S-f3])
134 (define-key xterm-function-map "\eO2S" [S-f4])
135 (define-key xterm-function-map "\e[15;2~" [S-f5])
136 (define-key xterm-function-map "\e[17;2~" [S-f6])
137 (define-key xterm-function-map "\e[18;2~" [S-f7])
138 (define-key xterm-function-map "\e[19;2~" [S-f8])
139 (define-key xterm-function-map "\e[20;2~" [S-f9])
140 (define-key xterm-function-map "\e[21;2~" [S-f10])
141 (define-key xterm-function-map "\e[23;2~" [S-f11])
142 (define-key xterm-function-map "\e[24;2~" [S-f12])
143
144 (define-key xterm-function-map "\eO5P" [C-f1])
145 (define-key xterm-function-map "\eO5Q" [C-f2])
146 (define-key xterm-function-map "\eO5R" [C-f3])
147 (define-key xterm-function-map "\eO5S" [C-f4])
148 (define-key xterm-function-map "\e[15;5~" [C-f5])
149 (define-key xterm-function-map "\e[17;5~" [C-f6])
150 (define-key xterm-function-map "\e[18;5~" [C-f7])
151 (define-key xterm-function-map "\e[19;5~" [C-f8])
152 (define-key xterm-function-map "\e[20;5~" [C-f9])
153 (define-key xterm-function-map "\e[21;5~" [C-f10])
154 (define-key xterm-function-map "\e[23;5~" [C-f11])
155 (define-key xterm-function-map "\e[24;5~" [C-f12])
156
157 (define-key xterm-function-map "\eO6P" [C-S-f1])
158 (define-key xterm-function-map "\eO6Q" [C-S-f2])
159 (define-key xterm-function-map "\eO6R" [C-S-f3])
160 (define-key xterm-function-map "\eO6S" [C-S-f4])
161 (define-key xterm-function-map "\e[15;6~" [C-S-f5])
162 (define-key xterm-function-map "\e[17;6~" [C-S-f6])
163 (define-key xterm-function-map "\e[18;6~" [C-S-f7])
164 (define-key xterm-function-map "\e[19;6~" [C-S-f8])
165 (define-key xterm-function-map "\e[20;6~" [C-S-f9])
166 (define-key xterm-function-map "\e[21;6~" [C-S-f10])
167 (define-key xterm-function-map "\e[23;6~" [C-S-f11])
168 (define-key xterm-function-map "\e[24;6~" [C-S-f12])
169
170 (define-key xterm-function-map "\eO3P" [A-f1])
171 (define-key xterm-function-map "\eO3Q" [A-f2])
172 (define-key xterm-function-map "\eO3R" [A-f3])
173 (define-key xterm-function-map "\eO3S" [A-f4])
174 (define-key xterm-function-map "\e[15;3~" [A-f5])
175 (define-key xterm-function-map "\e[17;3~" [A-f6])
176 (define-key xterm-function-map "\e[18;3~" [A-f7])
177 (define-key xterm-function-map "\e[19;3~" [A-f8])
178 (define-key xterm-function-map "\e[20;3~" [A-f9])
179 (define-key xterm-function-map "\e[21;3~" [A-f10])
180 (define-key xterm-function-map "\e[23;3~" [A-f11])
181 (define-key xterm-function-map "\e[24;3~" [A-f12])
182
183 (define-key xterm-function-map "\e[1;2A" [S-up])
184 (define-key xterm-function-map "\e[1;2B" [S-down])
185 (define-key xterm-function-map "\e[1;2C" [S-right])
186 (define-key xterm-function-map "\e[1;2D" [S-left])
187 (define-key xterm-function-map "\e[1;2F" [S-end])
188 (define-key xterm-function-map "\e[1;2H" [S-home])
189
190 (define-key xterm-function-map "\e[1;5A" [C-up])
191 (define-key xterm-function-map "\e[1;5B" [C-down])
192 (define-key xterm-function-map "\e[1;5C" [C-right])
193 (define-key xterm-function-map "\e[1;5D" [C-left])
194 (define-key xterm-function-map "\e[1;5F" [C-end])
195 (define-key xterm-function-map "\e[1;5H" [C-home])
196
197 (define-key xterm-function-map "\e[1;6A" [C-S-up])
198 (define-key xterm-function-map "\e[1;6B" [C-S-down])
199 (define-key xterm-function-map "\e[1;6C" [C-S-right])
200 (define-key xterm-function-map "\e[1;6D" [C-S-left])
201 (define-key xterm-function-map "\e[1;6F" [C-S-end])
202 (define-key xterm-function-map "\e[1;6H" [C-S-home])
203
204 (define-key xterm-function-map "\e[1;3A" [A-up])
205 (define-key xterm-function-map "\e[1;3B" [A-down])
206 (define-key xterm-function-map "\e[1;3C" [A-right])
207 (define-key xterm-function-map "\e[1;3D" [A-left])
208 (define-key xterm-function-map "\e[1;3F" [A-end])
209 (define-key xterm-function-map "\e[1;3H" [A-home])
210
211 (define-key xterm-function-map "\e[2;2~" [S-insert])
212 (define-key xterm-function-map "\e[3;2~" [S-delete])
213 (define-key xterm-function-map "\e[5;2~" [S-prior])
214 (define-key xterm-function-map "\e[6;2~" [S-next])
215
216 (define-key xterm-function-map "\e[2;5~" [C-insert])
217 (define-key xterm-function-map "\e[3;5~" [C-delete])
218 (define-key xterm-function-map "\e[5;5~" [C-prior])
219 (define-key xterm-function-map "\e[6;5~" [C-next])
220
221 (define-key xterm-function-map "\e[2;6~" [C-S-insert])
222 (define-key xterm-function-map "\e[3;6~" [C-S-delete])
223 (define-key xterm-function-map "\e[5;6~" [C-S-prior])
224 (define-key xterm-function-map "\e[6;6~" [C-S-next])
225
226 (define-key xterm-function-map "\e[2;3~" [A-insert])
227 (define-key xterm-function-map "\e[3;3~" [A-delete])
228 (define-key xterm-function-map "\e[5;3~" [A-prior])
229 (define-key xterm-function-map "\e[6;3~" [A-next])
230
231 (define-key xterm-function-map "\eOA" [up])
232 (define-key xterm-function-map "\eOB" [down])
233 (define-key xterm-function-map "\eOC" [right])
234 (define-key xterm-function-map "\eOD" [left])
235 (define-key xterm-function-map "\eOF" [end])
236 (define-key xterm-function-map "\eOH" [home])
237
238 (define-key xterm-function-map "\eO2A" [S-up])
239 (define-key xterm-function-map "\eO2B" [S-down])
240 (define-key xterm-function-map "\eO2C" [S-right])
241 (define-key xterm-function-map "\eO2D" [S-left])
242 (define-key xterm-function-map "\eO2F" [S-end])
243 (define-key xterm-function-map "\eO2H" [S-home])
244
245 (define-key xterm-function-map "\eO5A" [C-up])
246 (define-key xterm-function-map "\eO5B" [C-down])
247 (define-key xterm-function-map "\eO5C" [C-right])
248 (define-key xterm-function-map "\eO5D" [C-left])
249 (define-key xterm-function-map "\eO5F" [C-end])
250 (define-key xterm-function-map "\eO5H" [C-home]))
251
252 ;; Use inheritance to let the main keymap override those defaults.
253 ;; This way we don't override terminfo-derived settings or settings
254 ;; made in the .emacs file.
255 (let ((m (copy-keymap xterm-function-map)))
256 (set-keymap-parent m (keymap-parent (terminal-local-value 'function-key-map nil)))
257 (set-keymap-parent (terminal-local-value 'function-key-map nil) m))
259 258
260 ;; Set up colors, for those versions of xterm that support it. 259 ;; Set up colors, for those versions of xterm that support it.
261 (defvar xterm-standard-colors 260 (defvar xterm-standard-colors
262 ;; The names in the comments taken from XTerm-col.ad in the xterm 261 ;; The names in the comments taken from XTerm-col.ad in the xterm
263 ;; distribution, see ftp://dickey.his.com/xterm/. RGB values are 262 ;; distribution, see ftp://dickey.his.com/xterm/. RGB values are