source: branches/event-ide/ccl/cocoa-ide/hemlock/src/bindings.lisp @ 7993

Last change on this file since 7993 was 7993, checked in by gz, 13 years ago

Various:

Implement prompt-for-key, the last of the prompting suite of functions.

Keep last-command around, not just last-key-event, though ended up not using it.

Stop using pty's for listener input, as they wedge the cocoa thread when the
listener is busy. Use a specialized stream using direct queues, as for output.

With above change, no longer use pty's at all, so stop loading PTY module.

Rearrange recursive setup so view activation happens outside of modifying-buffer-storage.

Fix so with-buffer-bindings doesn't get confused if already wound (can't wait
til I get rid of this whole winding thing!)

make c-n/c-p with numarg at least move to end of range when not enough lines.

API tweaks:

Get rid of *invoke-hook* since not usable in current setup anyway.
Make last-key-event-typed read-only.
Move cocoa-specific part of keysym-defs to cocoa-editor.lisp
Move everything out of hemock-ext, make hemlock-ext be strictly the external support API.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 36.8 KB
Line 
1;; -*- Log: hemlock.log; Package: Hemlock -*-
2;;;
3;;; **********************************************************************
4;;; This code was written as part of the CMU Common Lisp project at
5;;; Carnegie Mellon University, and has been placed in the public domain.
6;;;
7#+CMU (ext:file-comment
8       "$Header$")
9;;;
10;;; **********************************************************************
11;;;
12;;; Some bindings:
13;;;
14
15(in-package :hemlock)
16
17
18
19;;;; Default key translations:
20
21;;; This page defines prefix characters that set specified modifier bits on
22;;; the next character typed.
23;;;
24(setf (key-translation #k"escape") '(:bits :meta))
25(setf (key-translation #k"control-z") '(:bits :control :meta))
26(setf (key-translation #k"control-Z") '(:bits :control :meta))
27(setf (key-translation #k"control-^") '(:bits :control))
28(setf (key-translation #k"control-c") '(:bits :hyper))
29(setf (key-translation #k"control-C") '(:bits :hyper))
30
31
32
33;;;; Most every binding.
34
35;;; Self insert letters:
36;;;
37(do-alpha-key-events (key-event :both)
38  (bind-key "Self Insert" key-event))
39
40(bind-key "Beginning of Line" #k"control-a")
41(bind-key "Select to Beginning of Line" #k"control-A")
42(bind-key "Delete Next Character" #k"control-d")
43(bind-key "Delete Next Character" #k"del")
44(bind-key "End of Line" #k"control-e")
45(bind-key "Select to End of Line" #k"control-E")
46(bind-key "Forward Character" #k"control-f")
47(bind-key "Forward Character" #k"rightarrow")
48(bind-key "Select Forward Character" #k"control-F")
49(bind-key "Select Forward Character" #k"shift-rightarrow")
50(bind-key "Backward Character" #k"control-b")
51(bind-key "Backward Character" #k"leftarrow")
52(bind-key "Select Backward Character" #k"control-B")
53(bind-key "Select Backward Character" #k"shift-leftarrow")
54(bind-key "Kill Line" #k"control-k")
55(bind-key "Refresh Screen" #k"control-l")
56(bind-key "Next Line" #k"control-n")
57(bind-key "Next Line" #k"downarrow")
58(bind-key "Select Next Line" #k"control-N")
59(bind-key "Select Next Line" #k"shift-downarrow")
60(bind-key "Previous Line" #k"control-p")
61(bind-key "Previous Line" #k"uparrow")
62(bind-key "Select Previous Line" #k"control-P")
63(bind-key "Select Previous Line" #k"shift-uparrow")
64(bind-key "Query Replace" #k"meta-%")
65(bind-key "Reverse Incremental Search" #k"control-r")
66(bind-key "Incremental Search" #k"control-s")
67(bind-key "Forward Search" #k"meta-s")
68(bind-key "Reverse Search" #k"meta-r")
69(bind-key "Transpose Characters" #k"control-t")
70(bind-key "Universal Argument" #k"control-u")
71(bind-key "Scroll Window Down" #k"control-v")
72(bind-key "Scroll Window Down" #k"pagedown")
73(bind-key "Scroll Window Up" #k"meta-v")
74(bind-key "Scroll Window Up" #k"pageup")
75;(bind-key "Scroll Next Window Down" #k"control-meta-v")
76;(bind-key "Scroll Next Window Up" #k"control-meta-V")
77
78(bind-key "Do Nothing" #k"leftdown")
79;(bind-key "Do Nothing" #k"leftup")
80
81(bind-key "Abort Command" #k"control-g")
82(bind-key "Abort Command" #k"control-G")
83(bind-key "Abort Command" #k"control-x control-g")
84(bind-key "Abort Command" #k"control-x control-G")
85
86
87(bind-key "Process File Options" #k"control-x m" :global)
88(bind-key "Ensure File Options Line" #k"control-meta-M" :global)
89(bind-key "Beginning of Buffer" #k"home")
90(bind-key "End of Buffer" #k"end")
91(bind-key "Undo" #k"control-_")
92(bind-key "Describe Key" #k"meta-?")
93(bind-key "What Cursor Position" #k"control-x =")
94
95
96#||
97(bind-key "Here to Top of Window" #k"leftdown")
98(bind-key "Do Nothing" #k"leftup")
99(bind-key "Top Line to Here" #k"rightdown")
100(bind-key "Do Nothing" #k"rightup")
101(bind-key "Point to Here" #k"middledown")
102(bind-key "Point to Here" #k"super-leftdown")
103(bind-key "Generic Pointer Up" #k"middleup")
104(bind-key "Generic Pointer Up" #k"super-leftup")
105(bind-key "Do Nothing" #k"super-rightup")
106(bind-key "Insert Kill Buffer" #k"super-rightdown")
107||#
108
109(bind-key "Insert File" #k"control-x control-r")
110(bind-key "Save File" #k"control-x control-s")
111(bind-key "Visit File" #k"control-x control-v")
112(bind-key "Write File" #k"control-x control-w")
113(bind-key "Find File" #k"control-x control-f")
114(bind-key "Backup File" #k"control-x meta-b")
115;(bind-key "Save All Files" #k"control-x control-m")
116;(bind-key "Save All Files" #k"control-x return")
117;(bind-key "Save All Files and Exit" #k"control-x meta-z")
118
119;(bind-key "List Buffers" #k"control-x control-b")
120(bind-key "Buffer Not Modified" #k"meta-~")
121;(bind-key "Check Buffer Modified" #k"control-x ~")
122;(bind-key "Select Buffer" #k"control-x b")
123;(bind-key "Select Previous Buffer" #k"control-meta-l")
124;(bind-key "Circulate Buffers" #k"control-meta-L")
125;(bind-key "Create Buffer" #k"control-x meta-b")
126;(bind-key "Kill Buffer" #k"control-x k")
127;(bind-key "Select Random Typeout Buffer" #k"hyper-t")
128
129;(bind-key "Next Window" #k"control-x n")
130;(bind-key "Next Window" #k"control-x o")
131;(bind-key "Previous Window" #k"control-x p")
132;(bind-key "Split Window" #k"control-x 2")
133;(bind-key "New Window" #k"control-x control-n")
134;(bind-key "Delete Window" #k"control-x d")
135;(bind-key "Delete Next Window" #k"control-x 1")
136;(bind-key "Line to Top of Window" #k"meta-!")
137;(bind-key "Line to Center of Window" #k"meta-#")
138;(bind-key "Top of Window" #k"meta-,")
139;(bind-key "Bottom of Window" #k"meta-.")
140
141(bind-key "Delete Previous Character" #k"delete")
142(bind-key "Delete Previous Character" #k"backspace")
143(bind-key "Kill Next Word" #k"meta-d")
144(bind-key "Kill Previous Word" #k"meta-delete")
145(bind-key "Kill Previous Word" #k"meta-backspace")
146(bind-key "Exchange Point and Mark" #k"control-x control-x")
147(bind-key "Mark Whole Buffer" #k"control-x h")
148(bind-key "Set/Pop Mark" #k"control-@")
149(bind-key "Set/Pop Mark" #k"control-space")
150(bind-key "Pop and Goto Mark" #k"meta-@")
151(bind-key "Pop Mark" #k"control-meta-space") ;#k"control-meta-@" = "Mark Form".
152(bind-key "Kill Region" #k"control-w")
153(bind-key "Save Region" #k"meta-w")
154(bind-key "Un-Kill" #k"control-y")
155(bind-key "Rotate Kill Ring" #k"meta-y")
156
157(bind-key "Forward Word" #k"meta-f")
158(bind-key "Select Forward Word" #k"meta-F")
159(bind-key "Backward Word" #k"meta-b")
160(bind-key "Select Backward Word" #k"meta-B")
161
162(bind-key "Forward Paragraph" #k"meta-]")
163(bind-key "Forward Sentence" #k"meta-e")
164(bind-key "Backward Paragraph" #k"meta-[")
165(bind-key "Backward Sentence" #k"meta-a")
166
167(bind-key "Mark Paragraph" #k"meta-h")
168
169(bind-key "Forward Kill Sentence" #k"meta-k")
170(bind-key "Backward Kill Sentence" #k"control-x delete")
171(bind-key "Backward Kill Sentence" #k"control-x backspace")
172
173(bind-key "Beginning of Buffer" #k"meta-\<")
174(bind-key "End of Buffer" #k"meta-\>")
175(bind-key "Mark to Beginning of Buffer" #k"control-\<")
176(bind-key "Mark to End of Buffer" #k"control-\>")
177
178(bind-key "Extended Command" #k"meta-x")
179
180(bind-key "Uppercase Word" #k"meta-u")
181(bind-key "Lowercase Word" #k"meta-l")
182(bind-key "Capitalize Word" #k"meta-c")
183
184;(bind-key "Previous Page" #k"control-x [")
185;(bind-key "Next Page" #k"control-x ]")
186;(bind-key "Mark Page" #k"control-x control-p")
187;(bind-key "Count Lines Page" #k"control-x l")
188
189(bind-key "Expand Dynamic Abbreviation" #k"meta-/") ;; Aquamacs and LW binding
190(bind-key "Expand Dynamic Abbreviation" #k"meta-`") ;; MCL binding
191
192
193;;;; Argument Digit and Negative Argument.
194
195(bind-key "Argument Digit" #k"meta-\-")
196(bind-key "Argument Digit" #k"meta-0")
197(bind-key "Argument Digit" #k"meta-1")
198(bind-key "Argument Digit" #k"meta-2")
199(bind-key "Argument Digit" #k"meta-3")
200(bind-key "Argument Digit" #k"meta-4")
201(bind-key "Argument Digit" #k"meta-5")
202(bind-key "Argument Digit" #k"meta-6")
203(bind-key "Argument Digit" #k"meta-7")
204(bind-key "Argument Digit" #k"meta-8")
205(bind-key "Argument Digit" #k"meta-9")
206(bind-key "Argument Digit" #k"control-\-")
207(bind-key "Argument Digit" #k"control-0")
208(bind-key "Argument Digit" #k"control-1")
209(bind-key "Argument Digit" #k"control-2")
210(bind-key "Argument Digit" #k"control-3")
211(bind-key "Argument Digit" #k"control-4")
212(bind-key "Argument Digit" #k"control-5")
213(bind-key "Argument Digit" #k"control-6")
214(bind-key "Argument Digit" #k"control-7")
215(bind-key "Argument Digit" #k"control-8")
216(bind-key "Argument Digit" #k"control-9")
217(bind-key "Argument Digit" #k"control-meta-\-")
218(bind-key "Argument Digit" #k"control-meta-0")
219(bind-key "Argument Digit" #k"control-meta-1")
220(bind-key "Argument Digit" #k"control-meta-2")
221(bind-key "Argument Digit" #k"control-meta-3")
222(bind-key "Argument Digit" #k"control-meta-4")
223(bind-key "Argument Digit" #k"control-meta-5")
224(bind-key "Argument Digit" #k"control-meta-6")
225(bind-key "Argument Digit" #k"control-meta-7")
226(bind-key "Argument Digit" #k"control-meta-8")
227(bind-key "Argument Digit" #k"control-meta-9")
228
229(bind-key "Digit" #k"\-")
230(bind-key "Digit" #k"0")
231(bind-key "Digit" #k"1")
232(bind-key "Digit" #k"2")
233(bind-key "Digit" #k"3")
234(bind-key "Digit" #k"4")
235(bind-key "Digit" #k"5")
236(bind-key "Digit" #k"6")
237(bind-key "Digit" #k"7")
238(bind-key "Digit" #k"8")
239(bind-key "Digit" #k"9")
240
241
242;;;; Self Insert and Quoted Insert.
243
244(bind-key "Quoted Insert" #k"control-q")
245
246(bind-key "Self Insert" #k"space")
247(bind-key "Self Insert" #k"!")
248(bind-key "Self Insert" #k"@")
249(bind-key "Self Insert" #k"#")
250(bind-key "Self Insert" #k"$")
251(bind-key "Self Insert" #k"%")
252(bind-key "Self Insert" #k"^")
253(bind-key "Self Insert" #k"&")
254(bind-key "Self Insert" #k"*")
255(bind-key "Self Insert" #k"(")
256(bind-key "Self Insert" #k")")
257(bind-key "Self Insert" #k"_")
258(bind-key "Self Insert" #k"+")
259(bind-key "Self Insert" #k"~")
260(bind-key "Self Insert" #k"[")
261(bind-key "Self Insert" #k"]")
262(bind-key "Self Insert" #k"\\")
263(bind-key "Self Insert" #k"|")
264(bind-key "Self Insert" #k":")
265(bind-key "Self Insert" #k";")
266(bind-key "Self Insert" #k"\"")
267(bind-key "Self Insert" #k"'")
268(bind-key "Self Insert" #k"=")
269(bind-key "Self Insert" #k"`")
270(bind-key "Self Insert" #k"\<")
271(bind-key "Self Insert" #k"\>")
272(bind-key "Self Insert" #k",")
273(bind-key "Self Insert" #k".")
274(bind-key "Self Insert" #k"?")
275(bind-key "Self Insert" #k"/")
276(bind-key "Self Insert" #k"{")
277(bind-key "Self Insert" #k"}")
278
279
280
281;;;; Echo Area.
282
283;;; Basic echo-area commands.
284;;;
285(bind-key "Help on Parse" #k"home" :mode "Echo Area")
286(bind-key "Help on Parse" #k"control-_" :mode "Echo Area")
287
288(bind-key "Complete Keyword" #k"escape" :mode "Echo Area")
289(bind-key "Complete Field" #k"space" :mode "Echo Area")
290(bind-key "Confirm Parse" #k"return" :mode "Echo Area")
291
292;;; Rebind some standard commands to behave better.
293;;;
294;;(bind-key "Kill Parse" #k"control-u" :mode "Echo Area")
295(bind-key "Insert Parse Default" #k"control-i" :mode "Echo Area")
296(bind-key "Insert Parse Default" #k"tab" :mode "Echo Area")
297(bind-key "Echo Area Delete Previous Character" #k"delete" :mode "Echo Area")
298(bind-key "Echo Area Delete Previous Character" #k"backspace" :mode "Echo Area")
299(bind-key "Echo Area Kill Previous Word" #k"meta-h" :mode "Echo Area")
300(bind-key "Echo Area Kill Previous Word" #k"meta-delete" :mode "Echo Area")
301(bind-key "Echo Area Kill Previous Word" #k"meta-backspace" :mode "Echo Area")
302(bind-key "Echo Area Kill Previous Word" #k"control-w" :mode "Echo Area")
303(bind-key "Beginning of Parse" #k"control-a" :mode "Echo Area")
304(bind-key "Beginning of Parse" #k"meta-\<" :mode "Echo Area")
305(bind-key "Echo Area Backward Character" #k"control-b" :mode "Echo Area")
306(bind-key "Echo Area Backward Word" #k"meta-b" :mode "Echo Area")
307(bind-key "Next Parse" #k"control-n" :mode "Echo Area")
308(bind-key "Previous Parse" #k"control-p" :mode "Echo Area")
309
310;;; Remove some dangerous standard bindings.
311;;;
312(bind-key "Illegal" #k"control-x" :mode "Echo Area")
313(bind-key "Illegal" #k"control-meta-c" :mode "Echo Area")
314(bind-key "Illegal" #k"control-meta-s" :mode "Echo Area")
315(bind-key "Illegal" #k"control-meta-l" :mode "Echo Area")
316(bind-key "Illegal" #k"meta-x" :mode "Echo Area")
317(bind-key "Illegal" #k"control-s" :mode "Echo Area")
318(bind-key "Illegal" #k"control-r" :mode "Echo Area")
319(bind-key "Illegal" #k"hyper-t" :mode "Echo Area")
320
321
322
323;;;; Listener and Editor Modes.
324(bind-key "Confirm Listener Input" #k"return" :mode "Listener")
325(bind-key "Previous Interactive Input" #k"meta-p" :mode "Listener")
326
327(bind-key "Search Previous Interactive Input" #k"meta-P" :mode "Listener")
328(bind-key "Next Interactive Input" #k"meta-n" :mode "Listener")
329(bind-key "Kill Interactive Input" #k"meta-i" :mode "Listener")
330;(bind-key "Abort Eval Input" #k"control-meta-i" :mode "Listener")
331(bind-key "Interactive Beginning of Line" #k"control-a" :mode "Listener")
332(bind-key "POP Or Delete Forward" #k"control-d" :mode "Listener")
333(bind-key "Reenter Interactive Input" #k"control-return" :mode "Listener")
334
335;;; Make the user use C-x C-w to save the file, and take care
336;;; not to associate the Listener document with any particular
337;;; file or type.
338(bind-key "Illegal" #k"control-x control-s" :mode "Listener")
339(bind-key "Save To File" #k"control-x control-w" :mode "Listener")
340
341(bind-key "Editor Evaluate Expression" #k"control-meta-escape")
342(bind-key "Editor Evaluate Expression" #k"meta-escape"  :mode "Editor")
343(bind-key "Editor Evaluate Defun" #k"control-x control-e" :mode "Editor")
344(bind-key "Editor Evaluate Region" #k"enter" :mode "Editor")
345(bind-key "Editor Evaluate Defun" #k"control-meta-x" :mode "Editor")
346(bind-key "Editor Compile Defun" #k"control-x control-c" :mode "Editor")
347(bind-key "Editor Compile Defun" #k"control-x control-C" :mode "Editor")
348
349(bind-key "Editor Macroexpand-1 Expression" #k"control-m" :mode "Editor")
350(bind-key "Editor Macroexpand Expression" #k"control-x control-m" :mode "Editor")
351(bind-key "Editor Describe Function Call" #k"control-meta-A" :mode "Editor")
352(bind-key "Editor Describe Symbol" #k"control-meta-S" :mode "Editor")
353
354
355;;;; Typescript.
356#+typescript
357(progn
358(bind-key "Confirm Typescript Input" #k"return" :mode "Typescript")
359(bind-key "Interactive Beginning of Line" #k"control-a" :mode "Typescript")
360(bind-key "Kill Interactive Input" #k"meta-i" :mode "Typescript")
361(bind-key "Previous Interactive Input" #k"meta-p" :mode "Typescript")
362(bind-key "Search Previous Interactive Input" #k"meta-P" :mode "Typescript")
363(bind-key "Next Interactive Input" #k"meta-n" :mode "Typescript")
364(bind-key "Reenter Interactive Input" #k"control-return" :mode "Typescript")
365(bind-key "Typescript Slave Break" #k"hyper-b" :mode "Typescript")
366(bind-key "Typescript Slave to Top Level" #k"hyper-g" :mode "Typescript")
367(bind-key "Typescript Slave Status" #k"hyper-s" :mode "Typescript")
368(bind-key "Select Slave" #k"control-meta-\c")
369(bind-key "Select Background" #k"control-meta-C")
370
371(bind-key "Abort Operations" #k"hyper-a")
372(bind-key "List Operations" #k"hyper-l")
373
374(bind-key "Next Compiler Error" #k"hyper-n")
375(bind-key "Previous Compiler Error" #k"hyper-p")
376)
377
378;;;; Lisp (some).
379
380(bind-key "Indent Form" #k"control-meta-q")
381(bind-key "Fill Lisp Comment Paragraph" #k"meta-q" :mode "Lisp")
382(bind-key "Current Function Arglist" #k"control-x control-a" :mode "Lisp")
383(bind-key "Arglist On Space" #k"Space" :mode "Lisp")
384(bind-key "Defindent" #k"control-meta-#")
385(bind-key "Beginning of Defun" #k"control-meta-a")
386(bind-key "Select to Beginning of Defun" #k"control-meta-A")
387(bind-key "End of Defun" #k"control-meta-e")
388(bind-key "Select to End of Defun" #k"control-meta-E")
389(bind-key "Forward Form" #k"control-meta-f")
390(bind-key "Select Forward Form" #k"control-meta-F")
391(bind-key "Backward Form" #k"control-meta-b")
392(bind-key "Select Backward Form" #k"control-meta-B")
393(bind-key "Forward List" #k"control-meta-n")
394(bind-key "Select Forward List" #k"control-meta-N")
395(bind-key "Backward List" #k"control-meta-p")
396(bind-key "Select Backward List" #k"control-meta-P")
397(bind-key "Transpose Forms" #k"control-meta-t")
398(bind-key "Forward Kill Form" #k"control-meta-k")
399(bind-key "Backward Kill Form" #k"control-meta-backspace")
400(bind-key "Backward Kill Form" #k"control-meta-delete")
401(bind-key "Mark Form" #k"control-meta-@")
402(bind-key "Mark Defun" #k"control-meta-h")
403(bind-key "Insert ()" #k"meta-(")
404(bind-key "Move over )" #k"meta-)")
405(bind-key "Backward Up List" #k"control-meta-(")
406(bind-key "Backward Up List" #k"control-meta-u")
407(bind-key "Forward Up List" #k"control-meta-)")
408(bind-key "Down List" #k"control-meta-d")
409(bind-key "Extract List" #k"control-meta-l")
410;;(bind-key "Lisp Insert )" #k")" :mode "Lisp")
411(bind-key "Delete Previous Character Expanding Tabs" #k"backspace" :mode "Lisp")
412(bind-key "Delete Previous Character Expanding Tabs" #k"delete" :mode "Lisp")
413(bind-key "Goto Absolute Line" #k"meta-g")
414;;;(bind-key "Set Package Name" #k"control-x p" :mode "Lisp")
415
416#+listener-bindings
417(progn
418(bind-key "Evaluate Expression" #k"meta-escape")
419(bind-key "Evaluate Defun" #k"control-x control-e")
420(bind-key "Compile Defun" #k"control-x control-c")
421(bind-key "Compile Buffer File" #k"control-x c")
422
423(bind-key "Describe Function Call" #k"control-meta-A")
424(bind-key "Describe Symbol" #k"control-meta-S")
425)
426
427(bind-key "Goto Definition" #k"meta-.")
428
429#+debugger-bindings
430(progn
431(bind-key "Debug Up" #k"control-meta-hyper-u")
432(bind-key "Debug Down" #k"control-meta-hyper-d")
433(bind-key "Debug Top" #k"control-meta-hyper-t")
434(bind-key "Debug Bottom" #k"control-meta-hyper-b")
435(bind-key "Debug Frame" #k"control-meta-hyper-f")
436(bind-key "Debug Quit" #k"control-meta-hyper-q")
437(bind-key "Debug Go" #k"control-meta-hyper-g")
438(bind-key "Debug Abort" #k"control-meta-hyper-a")
439(bind-key "Debug Restart" #k"control-meta-hyper-r")
440(bind-key "Debug Help" #k"control-meta-hyper-h")
441(bind-key "Debug Error" #k"control-meta-hyper-e")
442(bind-key "Debug Backtrace" #k"control-meta-hyper-B")
443(bind-key "Debug Print" #k"control-meta-hyper-p")
444(bind-key "Debug Verbose Print" #k"control-meta-hyper-P")
445(bind-key "Debug List Locals" #k"control-meta-hyper-l")
446(bind-key "Debug Source" #k"control-meta-hyper-s")
447(bind-key "Debug Edit Source" #k"control-meta-hyper-S")
448(bind-key "Debug Flush Errors" #k"control-meta-hyper-F")
449)
450
451
452;;;; More Miscellaneous bindings.
453
454(bind-key "Open Line" #k"Control-o")
455(bind-key "New Line" #k"return")
456
457(bind-key "Transpose Words" #k"meta-t")
458(bind-key "Transpose Lines" #k"control-x control-t")
459(bind-key "Transpose Regions" #k"control-x t")
460
461(bind-key "Uppercase Region" #k"control-x control-u")
462(bind-key "Lowercase Region" #k"control-x control-l")
463
464(bind-key "Delete Indentation" #k"meta-^")
465(bind-key "Delete Indentation" #k"control-meta-^")
466(bind-key "Delete Horizontal Space" #k"meta-\\")
467(bind-key "Delete Blank Lines" #k"control-x control-o" :global)
468(bind-key "Just One Space" #k"meta-space")
469(bind-key "Back to Indentation" #k"meta-m")
470(bind-key "Back to Indentation" #k"control-meta-m")
471(bind-key "Indent Rigidly" #k"control-x tab")
472(bind-key "Indent Rigidly" #k"control-x control-i")
473
474(bind-key "Indent New Line" #k"linefeed")
475(bind-key "Indent" #k"tab")
476(bind-key "Indent" #k"control-i")
477(bind-key "Indent Region" #k"control-meta-\\")
478(bind-key "Quote Tab" #k"meta-tab")
479
480#||
481(bind-key "Directory" #k"control-x control-\d")
482(bind-key "Verbose Directory" #k"control-x control-D")
483||#
484
485(bind-key "Activate Region" #k"control-x control-@")
486(bind-key "Activate Region" #k"control-x control-space")
487
488(bind-key "Save Position" #k"control-x s")
489(bind-key "Jump to Saved Position" #k"control-x j")
490(bind-key "Put Register" #k"control-x x")
491(bind-key "Get Register" #k"control-x g")
492
493#+pascal-mode
494(progn
495(bind-key "Delete Previous Character Expanding Tabs" #k"backspace"
496          :mode "Pascal")
497(bind-key "Delete Previous Character Expanding Tabs" #k"delete" :mode "Pascal")
498(bind-key "Scribe Insert Bracket" #k")" :mode "Pascal")
499(bind-key "Scribe Insert Bracket" #k"]" :mode "Pascal")
500(bind-key "Scribe Insert Bracket" #k"}" :mode "Pascal")
501)
502
503
504;;;; Auto Fill Mode.
505
506(bind-key "Fill Paragraph" #k"meta-q")
507(bind-key "Fill Region" #k"meta-g")
508(bind-key "Set Fill Prefix" #k"control-x .")
509(bind-key "Set Fill Column" #k"control-x f")
510(bind-key "Auto Fill Return" #k"return" :mode "Fill")
511(bind-key "Auto Fill Space" #k"space" :mode "Fill")
512(bind-key "Auto Fill Linefeed" #k"linefeed" :mode "Fill")
513
514
515
516#|
517;;;; Keyboard macro bindings.
518
519(bind-key "Define Keyboard Macro" #k"control-x (")
520(bind-key "Define Keyboard Macro Key" #k"control-x meta-(")
521(bind-key "End Keyboard Macro" #k"control-x )")
522(bind-key "End Keyboard Macro" #k"control-x hyper-)")
523(bind-key "Last Keyboard Macro" #k"control-x e")
524(bind-key "Keyboard Macro Query" #k"control-x q")
525|#
526
527
528;;;; Spell bindings.
529#||
530(progn
531  (bind-key "Check Word Spelling" #k"meta-$")
532  (bind-key "Add Word to Spelling Dictionary" #k"control-x $")
533
534  (dolist (info (command-bindings (getstring "Self Insert" *command-names*)))
535    (let* ((key (car info))
536           (key-event (svref key 0))
537           (character (key-event-char key-event)))
538      (unless (or (alpha-char-p character) (eq key-event #k"'"))
539        (bind-key "Auto Check Word Spelling" key :mode "Spell"))))
540  (bind-key "Auto Check Word Spelling" #k"return" :mode "Spell")
541  (bind-key "Auto Check Word Spelling" #k"tab" :mode "Spell")
542  (bind-key "Auto Check Word Spelling" #k"linefeed" :mode "Spell")
543  (bind-key "Correct Last Misspelled Word" #k"meta-:")
544  (bind-key "Undo Last Spelling Correction" #k"control-x a")
545  )
546
547;;;; Overwrite Mode.
548||#
549
550#||
551(bind-key "Overwrite Delete Previous Character" #k"delete" :mode "Overwrite")
552(bind-key "Overwrite Delete Previous Character" #k"backspace" :mode "Overwrite")
553
554;;; Do up the printing characters ...
555(do ((i 33 (1+ i)))
556    ((= i 126))
557  (let ((key-event (hi:char-key-event (code-char i))))
558    (bind-key "Self Overwrite" key-event :mode "Overwrite")))
559
560(bind-key "Self Overwrite" #k"space" :mode "Overwrite")
561||#
562
563
564;;;; Comment bindings.
565
566(bind-key "Indent for Comment" #k"meta-;")
567(bind-key "Set Comment Column" #k"control-x ;")
568(bind-key "Kill Comment" #k"control-meta-;")
569(bind-key "Down Comment Line" #k"meta-n")
570(bind-key "Up Comment Line" #k"meta-p")
571(bind-key "Indent New Comment Line" #k"meta-j")
572(bind-key "Indent New Comment Line" #k"meta-linefeed")
573
574
575#||
576;;;; Word Abbrev Mode.
577
578(bind-key "Add Mode Word Abbrev" #k"control-x control-a")
579(bind-key "Add Global Word Abbrev" #k"control-x +")
580(bind-key "Inverse Add Mode Word Abbrev" #k"control-x control-h")
581(bind-key "Inverse Add Global Word Abbrev" #k"control-x \-")
582;; Removed in lieu of "Pop and Goto Mark".
583;;(bind-key "Abbrev Expand Only" #k"meta-space")
584(bind-key "Word Abbrev Prefix Mark" #k"meta-\"")
585(bind-key "Unexpand Last Word" #k"control-x u")
586
587(dolist (key (list #k"!" #k"~" #k"@" #k"#" #k";" #k"$" #k"%" #k"^" #k"&" #k"*"
588                   #k"\-" #k"_" #k"=" #k"+" #k"[" #k"]" #k"(" #k")" #k"/" #k"|"
589                   #k":" #k"'" #k"\"" #k"{" #k"}" #k"," #k"\<" #k"." #k"\>"
590                   #k"`" #k"\\" #k"?" #k"return" #k"newline" #k"tab" #k"space"))
591  (bind-key "Abbrev Expand Only" key :mode "Abbrev"))
592
593||#
594
595
596;;;; Scribe Mode.
597
598#+scribe-mode
599(progn
600(dolist (key (list #k"]" #k")" #k"}" #k"\>"))
601  (bind-key "Scribe Insert Bracket" key :mode "Scribe"))
602
603;;GB (bind-key "Scribe Buffer File" #k"control-x c" :mode "Scribe")
604(bind-key "Select Scribe Warnings" #k"control-meta-C" :mode "Scribe")
605
606(bind-key "Insert Scribe Directive" #k"hyper-i" :mode "Scribe")
607)
608
609
610;;;; Mailer commands.
611#+mail-mode
612(progn
613;;; Clear everything user might hit to avoid getting the internal error
614;;; message about modifying read-only buffers.
615;;;
616(do-alpha-key-events (key-event :both)
617  (bind-key "Illegal" key-event :mode "Headers")
618  (bind-key "Illegal" key-event :mode "Message"))
619
620;;; Global.
621;;;
622(bind-key "Incorporate and Read New Mail" #k"control-x i")
623(bind-key "Send Message" #k"control-x m")
624(bind-key "Message Headers" #k"control-x r")
625
626;;; Both Headers and Message modes.
627;;;
628;;; The bindings in these two blocks should be the same, one for "Message" mode
629;;; and one for "Headers" mode.
630;;;
631(bind-key "Next Message" #k"meta-n" :mode "Message")
632(bind-key "Previous Message" #k"meta-p" :mode "Message")
633(bind-key "Next Undeleted Message" #k"n" :mode "Message")
634(bind-key "Previous Undeleted Message" #k"p" :mode "Message")
635(bind-key "Send Message" #k"s" :mode "Message")
636(bind-key "Send Message" #k"m" :mode "Message")
637(bind-key "Forward Message" #k"f" :mode "Message")
638(bind-key "Headers Delete Message" #k"k" :mode "Message")
639(bind-key "Headers Undelete Message" #k"u" :mode "Message")
640(bind-key "Headers Refile Message" #k"o" :mode "Message")
641(bind-key "List Mail Buffers" #k"l" :mode "Message")
642(bind-key "Quit Headers" #k"q" :mode "Message")
643(bind-key "Incorporate and Read New Mail" #k"i" :mode "Message")
644(bind-key "Beginning of Buffer" #k"\<" :mode "Message")
645(bind-key "End of Buffer" #k"\>" :mode "Message")
646;;;
647(bind-key "Next Message" #k"meta-n" :mode "Headers")
648(bind-key "Previous Message" #k"meta-p" :mode "Headers")
649(bind-key "Next Undeleted Message" #k"n" :mode "Headers")
650(bind-key "Previous Undeleted Message" #k"p" :mode "Headers")
651(bind-key "Send Message" #k"s" :mode "Headers")
652(bind-key "Send Message" #k"m" :mode "Headers")
653(bind-key "Forward Message" #k"f" :mode "Headers")
654(bind-key "Headers Delete Message" #k"k" :mode "Headers")
655(bind-key "Headers Undelete Message" #k"u" :mode "Headers")
656(bind-key "Headers Refile Message" #k"o" :mode "Headers")
657(bind-key "List Mail Buffers" #k"l" :mode "Headers")
658(bind-key "Quit Headers" #k"q" :mode "Headers")
659(bind-key "Incorporate and Read New Mail" #k"i" :mode "Headers")
660(bind-key "Beginning of Buffer" #k"\<" :mode "Headers")
661(bind-key "End of Buffer" #k"\>" :mode "Headers")
662
663
664;;; Headers mode.
665;;;
666(bind-key "Delete Message and Down Line" #k"d" :mode "Headers")
667(bind-key "Pick Headers" #k"h" :mode "Headers")
668(bind-key "Show Message" #k"space" :mode "Headers")
669(bind-key "Show Message" #k"." :mode "Headers")
670(bind-key "Reply to Message" #k"r" :mode "Headers")
671(bind-key "Expunge Messages" #k"!" :mode "Headers")
672(bind-key "Headers Help" #k"?" :mode "Headers")
673
674
675;;; Message mode.
676;;;
677(bind-key "Delete Message and Show Next" #k"d" :mode "Message")
678(bind-key "Goto Headers Buffer" #k"^" :mode "Message")
679(bind-key "Scroll Message" #k"space" :mode "Message")
680(bind-key "Scroll Message" #k"control-v" :mode "Message")
681(bind-key "Scroll Window Up" #k"backspace" :mode "Message")
682(bind-key "Scroll Window Up" #k"delete" :mode "Message")
683(bind-key "Reply to Message in Other Window" #k"r" :mode "Message")
684(bind-key "Edit Message Buffer" #k"e" :mode "Message")
685(bind-key "Insert Message Region" #k"hyper-y" :mode "Message")
686(bind-key "Message Help" #k"?" :mode "Message")
687
688
689;;; Draft mode.
690;;;
691(bind-key "Goto Headers Buffer" #k"hyper-^" :mode "Draft")
692(bind-key "Goto Message Buffer" #k"hyper-m" :mode "Draft")
693(bind-key "Deliver Message" #k"hyper-s" :mode "Draft")
694(bind-key "Deliver Message" #k"hyper-c" :mode "Draft")
695(bind-key "Insert Message Buffer" #k"hyper-y" :mode "Draft")
696(bind-key "Delete Draft and Buffer" #k"hyper-q" :mode "Draft")
697(bind-key "List Mail Buffers" #k"hyper-l" :mode "Draft")
698(bind-key "Draft Help" #k"hyper-?" :mode "Draft")
699);#+mail-mode
700
701
702;;;; Netnews.
703
704#+netnews-mode
705(progn
706;;; Clear everything user might hit to avoid getting the internal error
707;;; message about modifying read-only buffers.
708;;;
709(do-alpha-key-events (key-event :both)
710  (bind-key "Illegal" key-event :mode "News-Headers")
711  (bind-key "Illegal" key-event :mode "News-Message"))
712
713
714;;; Global Netnews bindings
715;;;
716(bind-key "Netnews Post Message" #k"C-x P")
717
718
719;;; Both News-Headers and News-Message modes.
720;;;
721;;; The bindings in these two blocks should be the same, one for "News-Message"
722;;; mode and one for "News-Headers" mode.
723;;;
724(bind-key "List All Groups" #k"l" :mode "News-Headers")
725(bind-key "Netnews Append to File" #k"a" :mode "News-Headers")
726(bind-key "Netnews Forward Message" #k"f" :mode "News-Headers")
727(bind-key "Netnews Go to Next Group" #k"g" :mode "News-Headers")
728(bind-key "Netnews Next Article" #k"n" :mode "News-Headers")
729(bind-key "Netnews Previous Article" #k"p" :mode "News-Headers")
730(bind-key "Netnews Quit Starting Here" #k"." :mode "News-Headers")
731(bind-key "Netnews Group Punt Messages" #k"G" :mode "News-Headers")
732(bind-key "Netnews Show Whole Header" #k"w" :mode "News-Headers")
733(bind-key "Netnews Reply to Sender in Other Window" #k"r" :mode "News-Headers")
734(bind-key "Netnews Reply to Group in Other Window" #k"R" :mode "News-Headers")
735;;;
736(bind-key "List All Groups" #k"l" :mode "News-Message")
737(bind-key "Netnews Append to File" #k"a" :mode "News-Message")
738(bind-key "Netnews Forward Message" #k"f" :mode "News-Message")
739(bind-key "Netnews Go to Next Group" #k"g" :mode "News-Message")
740(bind-key "Netnews Next Article" #k"n" :mode "News-Message")
741(bind-key "Netnews Previous Article" #k"p" :mode "News-Message")
742(bind-key "Netnews Quit Starting Here" #k"." :mode "News-Message")
743(bind-key "Netnews Group Punt Messages" #k"G" :mode "News-Message")
744(bind-key "Netnews Show Whole Header" #k"w" :mode "News-Message")
745(bind-key "Netnews Reply to Sender in Other Window" #k"r" :mode "News-Message")
746(bind-key "Netnews Reply to Group in Other Window" #k"R" :mode "News-Message")
747
748
749;;; News-Headers.
750;;;
751(bind-key "Netnews Exit" #k"q" :mode "News-Headers")
752(bind-key "Netnews Headers File Message" #k"o" :mode "News-Headers")
753(bind-key "Netnews Headers Scroll Window Down" #k"c-v" :mode "News-Headers")
754(bind-key "Netnews Headers Scroll Window Up" #k"m-v" :mode "News-Headers")
755(bind-key "Netnews Next Line" #k"C-n" :mode "News-Headers")
756(bind-key "Netnews Next Line" #k"Downarrow" :mode "News-Headers")
757(bind-key "Netnews Previous Line" #k"C-p" :mode "News-Headers")
758(bind-key "Netnews Previous Line" #k"Uparrow" :mode "News-Headers")
759(bind-key "Netnews Select Message Buffer" #k"hyper-m" :mode "News-Headers")
760(bind-key "Netnews Show Article" #k"space" :mode "News-Headers")
761
762
763;;; News-Message.
764;;;
765(bind-key "Insert Message Region" #k"Hyper-y" :mode "News-Message")
766(bind-key "Netnews Message File Message" #k"o" :mode "News-Message")
767(bind-key "Netnews Message Keep Buffer" #k"k" :mode "News-Message")
768(bind-key "Netnews Message Quit" #k"q" :mode "News-Message")
769(bind-key "Netnews Message Scroll Down"  #k"space" :mode "News-Message")
770(bind-key "Netnews Goto Draft Buffer" #k"hyper-d" :mode "News-Message")
771(bind-key "Netnews Goto Headers Buffer" #k"^" :mode "News-Message")
772(bind-key "Netnews Goto Headers Buffer" #k"hyper-h" :mode "News-Message")
773(bind-key "Netnews Goto Post Buffer" #k"hyper-p" :mode "News-Message")
774(bind-key "Scroll Window Up" #k"backspace" :mode "News-Message")
775
776
777;;; Post.
778;;;
779(bind-key "Netnews Select Message Buffer" #k"hyper-m" :mode "Post")
780(bind-key "Netnews Deliver Post" #k"hyper-s" :mode "Post")
781(bind-key "Netnews Abort Post" #k"hyper-q" :mode "Post")
782(bind-key "Insert Message Buffer" #k"Hyper-y" :mode "Post")
783
784
785;;; News-Browse.
786
787(bind-key "Netnews Quit Browse" #k"q" :mode "News-Browse")
788(bind-key "Netnews Browse Add Group To File" #k"a" :mode "News-Browse")
789(bind-key "Netnews Browse Read Group" #k"space" :mode "News-Browse")
790(bind-key "Next Line" #k"n" :mode "News-Browse")
791(bind-key "Previous Line" #k"p" :mode "News-Browse")
792)
793
794;;;; Process (Shell).
795
796#+shell-mode
797(progn
798(bind-key "Shell" #k"control-meta-s")
799(bind-key "Confirm Process Input" #k"return" :mode "Process")
800(bind-key "Shell Complete Filename" #k"M-escape" :mode "Process")
801(bind-key "Interrupt Buffer Subprocess" #k"hyper-c" :mode "Process")
802(bind-key "Stop Buffer Subprocess" #k"hyper-z" :mode "Process")
803(bind-key "Quit Buffer Subprocess" #k"hyper-\\")
804(bind-key "Send EOF to Process" #k"hyper-d")
805
806(bind-key "Previous Interactive Input" #k"meta-p" :mode "Process")
807(bind-key "Search Previous Interactive Input" #k"meta-P" :mode "Process")
808(bind-key "Interactive Beginning of Line" #k"control-a" :mode "Process")
809(bind-key "Kill Interactive Input" #k"meta-i" :mode "Process")
810(bind-key "Next Interactive Input" #k"meta-n" :mode "Process")
811(bind-key "Reenter Interactive Input" #k"control-return" :mode "Process")
812)
813
814;;;; Bufed.
815
816#||
817(bind-key "Bufed" #k"control-x control-meta-b")
818(bind-key "Bufed Delete" #k"d" :mode "Bufed")
819(bind-key "Bufed Delete" #k"control-d" :mode "Bufed")
820(bind-key "Bufed Undelete" #k"u" :mode "Bufed")
821(bind-key "Bufed Expunge" #k"!" :mode "Bufed")
822(bind-key "Bufed Quit" #k"q" :mode "Bufed")
823(bind-key "Bufed Goto" #k"space" :mode "Bufed")
824(bind-key "Bufed Goto and Quit" #k"super-leftdown" :mode "Bufed")
825(bind-key "Bufed Save File" #k"s" :mode "Bufed")
826(bind-key "Next Line" #k"n" :mode "Bufed")
827(bind-key "Previous Line" #k"p" :mode "Bufed")
828
829
830(bind-key "Bufed Help" #k"?" :mode "Bufed")
831|#
832
833
834;;;; Dired.
835#||
836(progn
837(bind-key "Dired" #k"control-x control-meta-d")
838
839(bind-key "Dired Delete File and Down Line" #k"d" :mode "Dired")
840(bind-key "Dired Delete File with Pattern" #k"D" :mode "Dired")
841(bind-key "Dired Delete File" #k"control-d" :mode "Dired")
842(bind-key "Dired Delete File" #k"k" :mode "Dired")
843
844(bind-key "Dired Undelete File and Down Line" #k"u" :mode "Dired")
845(bind-key "Dired Undelete File with Pattern" #k"U" :mode "Dired")
846(bind-key "Dired Undelete File" #k"control-u" :mode "Dired")
847
848(bind-key "Dired Expunge Files" #k"!" :mode "Dired")
849(bind-key "Dired Update Buffer" #k"hyper-u" :mode "Dired")
850(bind-key "Dired View File" #k"space" :mode "Dired")
851(bind-key "Dired Edit File" #k"e" :mode "Dired")
852(bind-key "Dired Up Directory" #k"^" :mode "Dired")
853(bind-key "Dired Quit" #k"q" :mode "Dired")
854(bind-key "Dired Help" #k"?" :mode "Dired")
855
856(bind-key "Dired Copy File" #k"c" :mode "Dired")
857(bind-key "Dired Copy with Wildcard" #k"C" :mode "Dired")
858(bind-key "Dired Rename File" #k"r" :mode "Dired")
859(bind-key "Dired Rename with Wildcard" #k"R" :mode "Dired")
860
861(bind-key "Next Line" #k"n" :mode "Dired")
862(bind-key "Previous Line" #k"p" :mode "Dired")
863)
864||#
865
866;;;; View Mode.
867#||
868(progn
869(bind-key "View Scroll Down" #k"space" :mode "View")
870(bind-key "Scroll Window Up" #k"b" :mode "View")
871(bind-key "Scroll Window Up" #k"backspace" :mode "View")
872(bind-key "Scroll Window Up" #k"delete" :mode "View")
873(bind-key "View Return" #k"^" :mode "View")
874(bind-key "View Quit" #k"q" :mode "View")
875(bind-key "View Edit File" #k"e" :mode "View")
876(bind-key "View Help" #k"?" :mode "View")
877(bind-key "Beginning of Buffer" #k"\<" :mode "View")
878(bind-key "End of Buffer" #k"\>" :mode "View")
879)
880||#
881
882;;;; Lisp Library.
883
884#||
885(bind-key "Describe Pointer Library Entry" #k"leftdown" :mode "Lisp-Lib")
886(bind-key "Load Pointer Library Entry" #k"rightdown" :mode "Lisp-Lib")
887(bind-key "Describe Library Entry" #k"space" :mode "Lisp-Lib")
888(bind-key "Load Library Entry" #k"l" :mode "Lisp-Lib")
889(bind-key "Exit Lisp Library" #k"q" :mode "Lisp-Lib")
890(bind-key "Lisp Library Help" #k"?" :mode "Lisp-Lib")
891||#
892
893
894;;;; Completion mode.
895
896(dolist (c (command-bindings (getstring "Self Insert" *command-names*)))
897  (bind-key "Completion Self Insert" (car c) :mode "Completion"))
898
899(bind-key "Completion Self Insert" #k"space" :mode "Completion")
900(bind-key "Completion Self Insert" #k"tab" :mode "Completion")
901(bind-key "Completion Self Insert" #k"return" :mode "Completion")
902(bind-key "Completion Self Insert" #k"linefeed" :mode "Completion")
903
904(bind-key "Completion Complete Word" #k"end")
905(bind-key "Completion Rotate Completions" #k"meta-end")
906
907
908
909;;;; Caps-Lock mode.
910
911(do-alpha-key-events (key-event :lower)
912  (bind-key "Self Insert Caps Lock" key-event :mode "CAPS-LOCK"))
913
914
915;;;; I-Search mode.
916;;;;
917;;;; Anything that's not explicitly bound here will exit i-search.
918
919(dotimes (n hi::hemlock-char-code-limit)
920  (when (standard-char-p (code-char n))
921    (let ((key (make-key-event n)))
922      (bind-key "I-Search Self Insert" key :mode "I-Search"))))
923
924(bind-key "I-Search Repeat Forward" #k"control-s" :mode "I-Search")
925(bind-key "I-Search Repeat Backward" #k"control-r" :mode "I-Search")
926(bind-key "I-Search Backup" #k"backspace" :mode "I-Search")
927(bind-key "I-Search Backup" #k"delete" :mode "I-Search")
928(bind-key "I-Search Abort" #k"control-g" :mode "I-Search")
929(bind-key "I-Search Abort" #k"control-G" :mode "I-Search")
930(bind-key "I-Search Exit or Search" #k"escape" :mode "I-Search")
931(bind-key "I-Search Yank Word" #k"control-w" :mode "I-Search")
932(bind-key "Quoted Insert" #k"control-q" :mode "I-Search")
933
934
935;;;; Query/Replace mode.
936;;;;
937;;;; Anything that's not explicitly bound here will exit i-search.
938
939(bind-key "Query/Replace This" #k"y" :mode "Query/Replace")
940(bind-key "Query/Replace This" #k"space" :mode "Query/Replace")
941(bind-key "Query/Replace Skip" #k"n" :mode "Query/Replace")
942(bind-key "Query/Replace Skip" #k"backspace" :mode "Query/Replace")
943(bind-key "Query/Replace Skip" #k"delete" :mode "Query/Replace")
944(bind-key "Query/Replace All" #k"!" :mode "Query/Replace")
945(bind-key "Query/Replace Last" #k"." :mode "Query/Replace")
946(bind-key "Query/Replace Exit" #k"q" :mode "Query/Replace")
947(bind-key "Query/Replace Exit" #k"escape" :mode "Query/Replace")
948(bind-key "Query/Replace Abort" #k"control-g" :mode "Query/Replace")
949(bind-key "Query/Replace Abort" #k"control-G" :mode "Query/Replace")
950(bind-key "Query/Replace Help" #k"h" :mode "Query/Replace")
951(bind-key "Query/Replace Help" #k"?" :mode "Query/Replace")
952(bind-key "Query/Replace Help" #k"home" :mode "Query/Replace")
953(bind-key "Query/Replace Help" #k"control-_" :mode "Query/Replace")
954
955;;;; Logical characters.
956 
957(setf (logical-key-event-p #k"control-g" :abort) t)
958(setf (logical-key-event-p #k"y" :yes) t)
959(setf (logical-key-event-p #k"space" :yes) t)
960(setf (logical-key-event-p #k"n" :no) t)
961(setf (logical-key-event-p #k"backspace" :no) t)
962(setf (logical-key-event-p #k"delete" :no) t)
963(setf (logical-key-event-p #k"home" :help) t)
964(setf (logical-key-event-p #k"h" :help) t)
965(setf (logical-key-event-p #k"?" :help) t)
966(setf (logical-key-event-p #k"control-_" :help) t)
967(setf (logical-key-event-p #k"return" :confirm) t)
968(setf (logical-key-event-p #k"control-q" :quote) t)
969(setf (logical-key-event-p #k"k" :keep) t)
970(setf (logical-key-event-p #k"y" :y) t)
971(setf (logical-key-event-p #k"Y" :y) t)
972(setf (logical-key-event-p #k"n" :n) t)
973(setf (logical-key-event-p #k"N" :n) t)
974
Note: See TracBrowser for help on using the repository browser.