source: release/1.3/source/cocoa-ide/hemlock/src/bindings.lisp @ 11927

Last change on this file since 11927 was 11927, checked in by rme, 11 years ago

Merge trunk changes r11863 through r11898.

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