Mercurial > emacs
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 |