[climacs-cvs] CVS update: climacs/slidemacs-gui.lisp climacs/gui.lisp climacs/esa.lisp

Dave Murray dmurray at common-lisp.net
Tue Aug 30 17:28:57 UTC 2005


Update of /project/climacs/cvsroot/climacs
In directory common-lisp.net:/tmp/cvs-serv29630

Modified Files:
	slidemacs-gui.lisp gui.lisp esa.lisp 
Log Message:
Changed ESA's set-key to automatically create dead-escape
equivalents to :meta commands. Changed all global-set-keys
to use set-key instead. Now key-chords are assigned next to
the command definitions. All commands currently in 
global-climacs-table. The next task is to redistribute them
among relevant groupings of tables.

Date: Tue Aug 30 19:28:53 2005
Author: dmurray

Index: climacs/slidemacs-gui.lisp
diff -u climacs/slidemacs-gui.lisp:1.16 climacs/slidemacs-gui.lisp:1.17
--- climacs/slidemacs-gui.lisp:1.16	Wed Jun 22 20:36:13 2005
+++ climacs/slidemacs-gui.lisp	Tue Aug 30 19:28:52 2005
@@ -543,13 +543,27 @@
        (setf (syntax buffer) (make-instance 'slidemacs-gui-syntax
                                             :buffer buffer))))))
 
-(climacs-gui::global-set-key '(#\= :control) 'com-next-talking-point)
-(climacs-gui::global-set-key '(#\- :control) 'com-previous-talking-point)
-(climacs-gui::global-set-key '(#\= :meta) 'com-increase-presentation-font-sizes)
-(climacs-gui::global-set-key '(#\- :meta) 'com-decrease-presentation-font-sizes)
-(climacs-gui::global-set-key '(#\= :control :meta) 'com-last-talking-point)
-(climacs-gui::global-set-key '(#\- :control :meta) 'com-first-talking-point)
-(climacs-gui::global-set-key '(#\s :control :meta) 'com-flip-slidemacs-syntax)
+(esa:set-key  'com-next-talking-point
+	      'climacs-gui::global-climacs-table
+	      '((#\= :control)))
+(esa:set-key  'com-previous-talking-point
+	      'climacs-gui::global-climacs-table
+	      '((#\- :control)))
+(esa:set-key  'com-increase-presentation-font-sizes
+	      'climacs-gui::global-climacs-table
+	      '((#\= :meta)))
+(esa:set-key  'com-decrease-presentation-font-sizes
+	      'climacs-gui::global-climacs-table
+	      '((#\- :meta)))
+(esa:set-key  'com-last-talking-point
+	      'climacs-gui::global-climacs-table
+	      '((#\= :control :meta)))
+(esa:set-key  'com-first-talking-point
+	      'climacs-gui::global-climacs-table
+	      '((#\- :control :meta)))
+(esa:set-key  'com-flip-slidemacs-syntax
+	      'climacs-gui::global-climacs-table
+	      '((#\s :control :meta)))
 
 (climacs-gui::define-named-command com-postscript-print-presentation ()
   (let ((pane (climacs-gui::current-window)))


Index: climacs/gui.lisp
diff -u climacs/gui.lisp:1.183 climacs/gui.lisp:1.184
--- climacs/gui.lisp:1.183	Thu Aug 25 10:43:55 2005
+++ climacs/gui.lisp	Tue Aug 30 19:28:52 2005
@@ -197,12 +197,21 @@
   (with-slots (overwrite-mode) (current-window)
     (setf overwrite-mode (not overwrite-mode))))
 
+(set-key 'com-toggle-overwrite-mode 'global-climacs-table
+	 '((:insert)))
+
 (define-named-command com-not-modified ()
   (setf (needs-saving (buffer (current-window))) nil))
 
+(set-key 'com-not-modified 'global-climacs-table
+	 '((#\~ :meta :shift)))
+
 (define-named-command com-set-fill-column ((column 'integer :prompt "Column Number:"))
   (set-fill-column column))
 
+(set-key `(com-set-fill-column ,*numeric-argument-marker*) 'global-climacs-table
+	 '((#\x :control) (#\f)))
+
 (defun set-fill-column (column)
   (if (> column 1)
       (setf (auto-fill-column (current-window)) column)
@@ -244,9 +253,21 @@
 (define-named-command com-beginning-of-line ()
   (beginning-of-line (point (current-window))))
 
+(set-key 'com-beginning-of-line 'global-climacs-table
+	 '((:home)))
+
+(set-key 'com-beginning-of-line 'global-climacs-table
+	 '((#\a :control)))
+
 (define-named-command com-end-of-line ()
   (end-of-line (point (current-window))))
 
+(set-key 'com-end-of-line 'global-climacs-table
+	 '((#\e :control)))
+
+(set-key 'com-end-of-line 'global-climacs-table
+	 '((:end)))
+
 (define-named-command com-delete-object ((count 'integer :prompt "Number of Objects")
 					 (killp 'boolean :prompt "Kill?"))
   (let* ((point (point (current-window)))
@@ -257,6 +278,16 @@
 			       (region-to-sequence point mark)))
     (delete-region point mark)))
 
+(set-key `(com-delete-object ,*numeric-argument-marker*
+			     ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '(#\Rubout))
+
+(set-key `(com-delete-object ,*numeric-argument-marker*
+			     ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '((#\d :control)))
+
 (define-named-command com-backward-delete-object ((count 'integer :prompt "Number of Objects")
 						  (killp 'boolean :prompt "Kill?"))
   (let* ((point (point (current-window)))
@@ -267,6 +298,11 @@
 			       (region-to-sequence mark point)))
   (delete-region mark point)))
 
+(set-key `(com-backward-delete-object ,*numeric-argument-marker*
+				      ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '(#\Backspace))
+
 (define-named-command com-zap-to-object ()
   (let* ((item (handler-case (accept 't :prompt "Zap to Object")
 		(error () (progn (beep)
@@ -293,27 +329,46 @@
   (search-forward item-mark item)
   (delete-range current-point (- (offset item-mark) current-offset))))
 
-(define-named-command com-transpose-objects ()
-  (transpose-objects (point (current-window))))
+(set-key 'com-zap-to-character 'global-climacs-table
+	 '((#\z :meta)))
 
 (defun transpose-objects (mark)
   (unless (beginning-of-buffer-p mark)
-      (when (end-of-line-p mark)
-       (backward-object mark))
-       (let ((object (object-after mark)))
-        (delete-range mark)
-       (backward-object mark)
-       (insert-object mark object)
-       (forward-object mark))))
+    (when (end-of-line-p mark)
+      (backward-object mark))
+    (let ((object (object-after mark)))
+      (delete-range mark)
+      (backward-object mark)
+      (insert-object mark object)
+      (forward-object mark))))
+
+(define-named-command com-transpose-objects ()
+  (transpose-objects (point (current-window))))
+
+(set-key 'com-transponse-objects 'global-climacs-table
+	 '((#\t :control)))
 
 (define-named-command com-backward-object ((count 'integer :prompt "Number of Objects"))
   (backward-object (point (current-window)) count))
 
+(set-key `(com-backward-object ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\b :control)))
+
+(set-key `(com-backward-object ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((:left)))
+
 (define-named-command com-forward-object ((count 'integer :prompt "Number of Objects"))
   (forward-object (point (current-window)) count))
 
-(define-named-command com-transpose-words ()
-  (transpose-words (point (current-window))))
+(set-key `(com-forward-object ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\f :control)))
+
+(set-key `(com-forward-object ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((:right)))
 
 (defun transpose-words (mark)
   (let (bw1 bw2 ew1 ew2)
@@ -338,8 +393,11 @@
       (insert-sequence mark w2)
       (forward-word mark))))
 
-(define-named-command com-transpose-lines ()
-  (transpose-lines (point (current-window))))
+(define-named-command com-transpose-words ()
+  (transpose-words (point (current-window))))
+
+(set-key 'com-transpose-words 'global-climacs-table
+	 '((#\t :meta)))
 
 (defun transpose-lines (mark)
   (beginning-of-line mark)
@@ -363,6 +421,12 @@
     (insert-sequence mark line)
     (insert-object mark #\Newline)))
 
+(define-named-command com-transpose-lines ()
+  (transpose-lines (point (current-window))))
+
+(set-key 'com-transpose-lines 'global-climacs-table
+	 '((#\x :control) (#\t :control)))
+
 (define-named-command com-previous-line ((numarg 'integer :prompt "How many lines?"))
   (let* ((win (current-window))
 	 (point (point win)))
@@ -373,6 +437,14 @@
 	(previous-line point (slot-value win 'goal-column) numarg)
 	(next-line point (slot-value win 'goal-column) (- numarg)))))
 
+(set-key `(com-previous-line ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\p :control)))
+
+(set-key `(com-previous-line ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((:up)))
+
 (define-named-command com-next-line ((numarg 'integer :prompt "How many lines?"))
   (let* ((win (current-window))
 	 (point (point win)))
@@ -383,9 +455,21 @@
 	(next-line point (slot-value win 'goal-column) numarg)
 	(previous-line point (slot-value win 'goal-column) (- numarg)))))
 
+(set-key `(com-next-line ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\n :control)))
+
+(set-key `(com-next-line ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((:down)))
+
 (define-named-command com-open-line ((numarg 'integer :prompt "How many lines?"))
   (open-line (point (current-window)) numarg))
 
+(set-key `(com-open-line ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\o :control)))
+
 (defun kill-line (mark &optional (count 1) (whole-lines-p nil) (concatenate-p nil))
   (let ((start (offset mark)))
     (cond ((= 0 count)
@@ -421,14 +505,34 @@
          (concatenate-p (eq (previous-command pane) 'com-kill-line)))
     (kill-line point numarg numargp concatenate-p)))	   
 
+(set-key `(com-kill-line ,*numeric-argument-marker* ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '((#\k :control)))
+
 (define-named-command com-forward-word ((count 'integer :prompt "Number of words"))
   (if (plusp count)
       (forward-word (point (current-window)) count)
       (backward-word (point (current-window)) (- count))))
 
+(set-key `(com-forward-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\f :meta)))
+
+(set-key `(com-forward-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((:right :control)))
+
 (define-named-command com-backward-word ((count 'integer :prompt "Number of words"))
   (backward-word (point (current-window)) count))
 
+(set-key `(com-backward-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\b :meta)))
+
+(set-key `(com-backward-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((:left :control)))
+
 (define-named-command com-delete-word ((count 'integer :prompt "Number of words"))
   (delete-word (point (current-window)) count))
 
@@ -458,12 +562,20 @@
 	 (concatenate-p (eq (previous-command pane) 'com-kill-word)))
     (kill-word point count concatenate-p)))
 
+(set-key `(com-kill-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\d :meta)))
+
 (define-named-command com-backward-kill-word ((count 'integer :prompt "Number of words"))
   (let* ((pane (current-window))
 	 (point (point pane))
 	 (concatenate-p (eq (previous-command pane) 'com-backward-kill-word)))
     (kill-word point (- count) concatenate-p)))
 
+(set-key `(com-backward-kill-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\Backspace :meta)))
+
 (define-named-command com-mark-word ((count 'integer :prompt "Number of words"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -474,6 +586,10 @@
 	(forward-word mark count)
 	(backward-word mark (- count)))))
 
+(set-key `(com-mark-word ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\@ :meta :shift)))
+
 (define-named-command com-backward-delete-word ((count 'integer :prompt "Number of words"))
   (backward-delete-word (point (current-window)) count))
 
@@ -492,12 +608,21 @@
 (define-named-command com-upcase-word ()
   (upcase-word (point (current-window))))
 
+(set-key 'com-upcase-word 'global-climacs-table
+	 '((#\u :meta)))
+
 (define-named-command com-downcase-word ()
   (downcase-word (point (current-window))))
 
+(set-key 'com-downcase-word 'global-climacs-table
+	 '((#\l :meta)))
+
 (define-named-command com-capitalize-word ()
   (capitalize-word (point (current-window))))
 
+(set-key 'com-capitalize-word 'global-climacs-table
+	 '((#\c :meta)))
+
 (define-named-command com-tabify-region ()
   (let ((pane (current-window)))
     (tabify-region
@@ -523,15 +648,27 @@
          (point (point pane)))
     (indent-current-line pane point)))
 
+(set-key 'com-indent-line 'global-climacs-table
+	 '((#\Tab)))
+
+(set-key 'com-indent-line 'global-climacs-table
+	 '((#\i :control)))
+
 (define-named-command com-newline-and-indent ()
   (let* ((pane (current-window))
 	 (point (point pane)))
     (insert-object point #\Newline)
     (indent-current-line pane point)))
 
+(set-key 'com-newline-and-indent 'global-climacs-table
+	 '((#\j :control)))
+
 (define-named-command com-delete-indentation ()
   (delete-indentation (point (current-window))))
 
+(set-key 'com-delete-indentation 'global-climacs-table
+	 '((#\^ :shift :meta)))
+
 (define-named-command com-auto-fill-mode ()
   (let ((pane (current-window)))
     (setf (auto-fill-mode pane) (not (auto-fill-mode pane)))))
@@ -556,6 +693,9 @@
       (possibly-fill-line)
       (setf (offset point) (offset point-backup)))))
 
+(set-key 'com-fill-paragraph 'global-climacs-table
+	 '((#\q :meta)))
+
 (eval-when (:compile-toplevel :load-toplevel)
   (define-presentation-type completable-pathname ()
   :inherit-from 'pathname))
@@ -715,6 +855,9 @@
 			   :prompt "Find File")))
     (find-file filepath)))
 
+(set-key 'com-find-file 'global-climacs-table
+	 '((#\x :control) (#\f :control)))
+
 (defun find-file-read-only (filepath)
   (cond ((null filepath)
 	 (display-message "No file name given.")
@@ -755,10 +898,16 @@
   (let ((filepath (accept 'completable-pathname :Prompt "Find file read only")))
     (find-file-read-only filepath)))
 
+(set-key 'com-find-file-read-only 'global-climacs-table
+	 '((#\x :control) (#\r :control)))
+
 (define-named-command com-toggle-read-only ()
   (let ((buffer (buffer (current-window))))
     (setf (read-only-p buffer) (not (read-only-p buffer)))))
 
+(set-key 'com-toggle-read-only 'global-climacs-table
+	 '((#\x :control) (#\q :control)))
+
 (defun set-visited-file-name (filename buffer)
   (setf (filepath buffer) filename
 	(name buffer) (filepath-filename filename)
@@ -782,6 +931,9 @@
 	     (offset (point pane)) (offset (mark pane))))
     (redisplay-frame-panes *application-frame*)))
 
+(set-key 'com-insert-file 'global-climacs-table
+	 '((#\x :control) (#\i :control)))
+
 (defgeneric erase-buffer (buffer))
 
 (defmethod erase-buffer ((buffer string))
@@ -844,6 +996,9 @@
 	(save-buffer buffer)
 	(display-message "No changes need to be saved from ~a" (name buffer)))))
 
+(set-key 'com-save-buffer 'global-climacs-table
+	 '((#\x :control) (#\s :control)))
+
 (defmethod frame-exit :around ((frame climacs))
   (loop for buffer in (buffers frame)
 	when (and (needs-saving buffer)
@@ -877,6 +1032,9 @@
 	     (needs-saving buffer) nil)
        (display-message "Wrote: ~a" (filepath buffer))))))
 
+(set-key 'com-write-buffer 'global-climacs-table
+	 '((#\x :control) (#\w :control)))
+
 (define-presentation-method present (object (type buffer)
 					    stream
 					    (view textual-view)
@@ -933,6 +1091,9 @@
 			:default-type 'buffer)))
     (switch-to-buffer buffer)))
 
+(set-key 'com-switch-to-buffer 'global-climacs-table
+	 '((#\x :control) (#\b)))
+
 (defgeneric kill-buffer (buffer))
 
 (defmethod kill-buffer ((buffer climacs-buffer))
@@ -964,9 +1125,15 @@
 			:default-type 'buffer)))
     (kill-buffer buffer)))
 
+(set-key 'com-kill-buffer 'global-climacs-table
+	 '((#\x :control) (#\k)))
+
 (define-named-command com-full-redisplay ()
   (full-redisplay (current-window)))
 
+(set-key 'com-full-redisplay 'global-climacs-table
+	 '((#\l :control)))
+
 (defun load-file (file-name)
   (cond ((directory-pathname-p file-name)
 	 (display-message "~A is a directory name." file-name)
@@ -983,24 +1150,54 @@
 			  :prompt "Load File")))
     (load-file filepath)))
 
+(set-key 'com-load-file 'global-climacs-table
+	 '((#\c :control) (#\l :control)))
+
 (define-named-command com-beginning-of-buffer ()
   (beginning-of-buffer (point (current-window))))
 
+(set-key 'com-beginning-of-buffer 'global-climacs-table
+	 '((#\< :shift :meta)))
+
+(set-key 'com-beginning-of-buffer 'global-climacs-table
+	 '((:home :control)))
+
 (define-named-command com-page-down ()
   (let ((pane (current-window)))
     (page-down pane)))
 
+(set-key 'com-page-down 'global-climacs-table
+	 '((#\v :control)))
+
+(set-key 'com-page-down 'global-climacs-table
+	 '((:next)))
+
 (define-named-command com-page-up ()
   (let ((pane (current-window)))
     (page-up pane)))
 
+(set-key 'com-page-up 'global-climacs-table
+	 '((#\v :meta)))
+
+(set-key 'com-page-up 'global-climacs-table
+	 '((:prior)))
+
 (define-named-command com-end-of-buffer ()
   (end-of-buffer (point (current-window))))
 
+(set-key 'com-end-of-buffer 'global-climacs-table
+	 '((#\> :shift :meta)))
+
+(set-key 'com-end-of-buffer 'global-climacs-table
+	 '((:end :control)))
+
 (define-named-command com-mark-whole-buffer ()
   (beginning-of-buffer (point (current-window)))
   (end-of-buffer (mark (current-window))))
 
+(set-key 'com-mark-whole-buffer 'global-climacs-table
+	 '((#\x :control) (#\h)))
+
 (defun back-to-indentation (mark)
   (beginning-of-line mark)
   (loop until (end-of-line-p mark)
@@ -1010,6 +1207,9 @@
 (define-named-command com-back-to-indentation ()
   (back-to-indentation (point (current-window))))
 
+(set-key 'com-back-to-indentation 'global-climacs-table
+	 '((#\m :meta)))
+
 (defun delete-horizontal-space (mark &optional (backward-only-p nil))
   (let ((mark2 (clone-mark mark)))
     (loop until (beginning-of-line-p mark)
@@ -1025,6 +1225,10 @@
 						    'boolean :prompt "Delete backwards only?"))
   (delete-horizontal-space (point (current-window)) backward-only-p))
 
+(set-key `(com-delete-horizontal-space ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '((#\\ :meta)))
+
 (defun just-one-space (mark count)
   (let (offset)
     (loop until (beginning-of-line-p mark)
@@ -1042,6 +1246,10 @@
 (define-named-command com-just-one-space ((count 'integer :prompt "Number of spaces"))
   (just-one-space (point (current-window)) count))
 
+(set-key `(com-just-one-space ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\Space :meta)))
+
 (defun goto-position (mark pos)
   (setf (offset mark) pos))
 
@@ -1081,11 +1289,17 @@
   (let ((pane (current-window)))
     (setf (mark pane) (clone-mark (point pane)))))
 
+(set-key 'com-set-mark 'global-climacs-table
+	 '((#\Space :control)))
+
 (define-named-command com-exchange-point-and-mark ()
   (let ((pane (current-window)))
     (psetf (offset (mark pane)) (offset (point pane))
 	   (offset (point pane)) (offset (mark pane)))))
 
+(set-key 'com-exchange-point-and-mark 'global-climacs-table
+	 '((#\x :control) (#\x :control)))
+
 (defgeneric set-syntax (buffer syntax))
 
 (defmethod set-syntax ((buffer climacs-buffer) (syntax syntax))
@@ -1188,6 +1402,9 @@
 (define-named-command com-split-window-vertically ()
   (split-window-vertically))
 
+(set-key 'com-split-window-vertically 'global-climacs-table
+	 '((#\x :control) (#\2)))
+
 (defun split-window-horizontally (&optional (pane (current-window)))
   (with-look-and-feel-realization
       ((frame-manager *application-frame*) *application-frame*)
@@ -1210,6 +1427,9 @@
 (define-named-command com-split-window-horizontally ()
   (split-window-horizontally))
 
+(set-key 'com-split-window-horizontally 'global-climacs-table
+	 '((#\x :control) (#\3)))
+
 (defun other-window ()
   (setf (windows *application-frame*)
 	(append (cdr (windows *application-frame*))
@@ -1219,6 +1439,9 @@
 (define-named-command com-other-window ()
   (other-window))
 
+(set-key 'com-other-window 'global-climacs-table
+	 '((#\x :control) (#\o)))
+
 (defun single-window ()
   (loop until (null (cdr (windows *application-frame*)))
 	do (rotatef (car (windows *application-frame*))
@@ -1229,16 +1452,25 @@
 (define-named-command com-single-window ()
   (single-window))
 
+(set-key 'com-single-window 'global-climacs-table
+	 '((#\x :control) (#\1)))
+
 (define-named-command com-scroll-other-window ()
   (let ((other-window (second (windows *application-frame*))))
     (when other-window
       (page-down other-window))))
 
+(set-key 'com-scroll-other-window 'global-climacs-table
+	 '((#\v :control :meta)))
+
 (define-named-command com-scroll-other-window-up ()
   (let ((other-window (second (windows *application-frame*))))
     (when other-window
       (page-up other-window))))
 
+(set-key 'com-scroll-other-window-up 'global-climacs-table
+	 '((#\V :control :meta :shift)))
+
 (defun delete-window (&optional (window (current-window)))
   (unless (null (cdr (windows *application-frame*)))
     (let* ((constellation (if *with-scrollbars*
@@ -1271,6 +1503,9 @@
 (define-named-command com-delete-window ()
   (delete-window))
 
+(set-key 'com-delete-window 'global-climacs-table
+	 '((#\x :control) (#\0)))
+
 ;;;;;;;;;;;;;;;;;;;;
 ;; Kill ring commands
 
@@ -1278,6 +1513,9 @@
 (define-named-command com-yank ()
   (insert-sequence (point (current-window)) (kill-ring-yank *kill-ring*)))
 
+(set-key 'com-yank 'global-climacs-table
+	 '((#\y :control)))
+
 ;; Destructively cut a given buffer region into the kill-ring
 (define-named-command com-kill-region ()
   (let ((pane (current-window)))
@@ -1285,11 +1523,17 @@
      *kill-ring* (region-to-sequence (mark pane) (point pane)))
     (delete-region (mark pane) (point pane))))
 
+(set-key 'com-kill-region 'global-climacs-table
+	 '((#\w :control)))
+
 ;; Non destructively copies buffer region to the kill ring
 (define-named-command com-copy-region ()
   (let ((pane (current-window)))
     (kill-ring-standard-push *kill-ring* (region-to-sequence (point pane) (mark pane)))))
 
+(set-key 'com-copy-region 'global-climacs-table
+	 '((#\w :control)))
+
 (define-named-command com-rotate-yank ()
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1301,6 +1545,9 @@
 	  (rotate-yank-position *kill-ring*)))
     (insert-sequence point (kill-ring-yank *kill-ring*))))
 
+(set-key 'com-rotate-yank 'global-climacs-table
+	 '((#\y :meta)))
+
 (define-named-command com-resize-kill-ring ()
   (let ((size (handler-case (accept 'integer :prompt "New kill ring size")
 		(error () (progn (beep)
@@ -1311,6 +1558,9 @@
 (define-named-command com-append-next-kill ()
   (setf (append-next-p *kill-ring*) t))
 
+(set-key 'com-append-next-kill 'global-climacs-table
+	 '((#\w :control :meta)))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
 ;;; Incremental search
@@ -1364,10 +1614,16 @@
   (display-message "Isearch: ")
   (isearch-command-loop (current-window) t))
 
+(set-key 'com-isearch-forward 'global-climacs-table
+	 '((#\s :control)))
+
 (define-named-command com-isearch-backward ()
   (display-message "Isearch backward: ")
   (isearch-command-loop (current-window) nil))
 
+(set-key 'com-isearch-backward 'global-climacs-table
+	 '((#\r :control)))
+
 (define-command (com-isearch-append-char :name t :command-table isearch-climacs-table) ()
   (let* ((pane (current-window))
          (states (isearch-states pane))
@@ -1493,6 +1749,9 @@
 			   ((setf (query-replace-mode pane) nil))))
     (display-message "Replaced ~A occurrence~:P" occurrences)))
 
+(set-key 'com-query-replace 'global-climacs-table
+	 '((#\% :shift :meta)))
+
 (define-command (com-query-replace-replace :name t :command-table query-replace-climacs-table) ()
   (declare (special string1 string2 occurrences))
   (let* ((pane (current-window))
@@ -1550,11 +1809,23 @@
     (no-more-undo () (beep) (display-message "No more undo")))
   (full-redisplay (current-window)))
 
+(set-key 'com-undo 'global-climacs-table
+	 '((#\_ :shift :control)))
+
+(set-key 'com-undo 'global-climacs-table
+	 '((#\x :control) (#\u)))
+
 (define-named-command com-redo ()
   (handler-case (redo (undo-tree (buffer (current-window))))
     (no-more-undo () (beep) (display-message "No more redo")))
   (full-redisplay (current-window)))
 
+(set-key 'com-redo 'global-climacs-table
+	 '((#\_ :shift :meta)))
+
+(set-key 'com-redo 'global-climacs-table
+	 '((#\x :control) (#\r :control)))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
 ;;; Dynamic abbrevs
@@ -1596,6 +1867,8 @@
 						(setf (offset dabbrev-expansion-mark) offset))))
 		      (move))))))))
 
+(set-key 'com-dabbrev-expand 'global-climacs-table
+	 '((#\/ :meta)))
 
 (define-named-command com-backward-paragraph ((count 'integer :prompt "Number of paragraphs"))
   (let* ((pane (current-window))
@@ -1605,6 +1878,10 @@
 	(loop repeat count do (backward-paragraph point syntax))
 	(loop repeat (- count) do (forward-paragraph point syntax)))))
 
+(set-key `(com-backward-paragraph ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\{ :shift :meta)))
+
 (define-named-command com-forward-paragraph ((count 'integer :prompt "Number of paragraphs"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1613,6 +1890,10 @@
 	(loop repeat count do (forward-paragraph point syntax))
 	(loop repeat (- count) do (backward-paragraph point syntax)))))
 
+(set-key `(com-forward-paragraph ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\} :shift :meta)))
+
 (define-named-command com-mark-paragraph ((count 'integer :prompt "Number of paragraphs"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1627,6 +1908,10 @@
 	(loop repeat count do (forward-paragraph mark syntax))
 	(loop repeat (- count) do (backward-paragraph mark syntax)))))
 
+(set-key `(com-mark-paragraph ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\h :meta)))
+
 (define-named-command com-backward-sentence ((count 'integer :prompt "Number of sentences"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1635,6 +1920,10 @@
 	(loop repeat count do (backward-sentence point syntax))
 	(loop repeat (- count) do (forward-sentence point syntax)))))
 
+(set-key `(com-backward-sentence ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\a :meta)))
+
 (define-named-command com-forward-sentence ((count 'integer :prompt "Number of sentences"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1643,6 +1932,10 @@
 	(loop repeat count do (forward-sentence point syntax))
 	(loop repeat (- count) do (backward-sentence point syntax)))))
 
+(set-key `(com-forward-sentence ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\e :meta)))
+
 (define-named-command com-kill-sentence ((count 'integer :prompt "Number of sentences"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1654,6 +1947,10 @@
     (kill-ring-standard-push *kill-ring* (region-to-sequence point mark))
     (delete-region point mark)))
 
+(set-key `(com-kill-sentence *numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\k :meta)))
+
 (define-named-command com-backward-kill-sentence ((count 'integer :prompt "Number of sentences"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1665,6 +1962,10 @@
     (kill-ring-standard-push *kill-ring* (region-to-sequence point mark))
     (delete-region point mark)))
 
+(set-key `(com-backward-kill-sentence ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\x :control) (#\Backspace)))
+
 (defun forward-page (mark &optional (count 1))
   (loop repeat count
 	unless (search-forward mark (coerce (list #\Newline #\Page) 'vector))
@@ -1678,6 +1979,10 @@
 	(forward-page point count)
 	(backward-page point count))))
 
+(set-key `(com-forward-page ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\x :control) (#\])))
+
 (defun backward-page (mark &optional (count 1))
   (loop repeat count
 	  when (search-backward mark (coerce (list #\Newline #\Page) 'vector))
@@ -1692,6 +1997,9 @@
 	(backward-page point count)
 	(forward-page point count))))
 
+(set-key 'com-backward-page 'global-climacs-table
+	 '((#\x :control) (#\[)))
+
 (define-named-command com-mark-page ((count 'integer :prompt "Move how many pages")
 				     (numargp 'boolean :prompt "Move to another page?"))
   (let* ((pane (current-window))
@@ -1705,6 +2013,10 @@
     (setf (offset mark) (offset point))
 	   (forward-page mark 1)))
 
+(set-key `(com-mark-page ,*numeric-argument-marker* ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '((#\x :control) (#\p :control)))
+
 (define-named-command com-count-lines-page ()
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1717,6 +2029,9 @@
 	  (after (number-of-lines-in-region point end)))
       (display-message "Page has ~A lines (~A + ~A)" total before after))))
 
+(set-key 'com-count-lines-page 'global-climacs-table
+	 '((#\x :control) (#\l)))
+
 (define-named-command com-count-lines-region ()
   (let*  ((pane (current-window))
 	  (point (point pane))
@@ -1725,6 +2040,9 @@
 	  (chars (abs (- (offset point) (offset mark)))))
     (display-message "Region has ~D line~:P, ~D character~:P." lines chars)))
 
+(set-key 'com-count-lines-region 'global-climacs-table
+	 '((#\= :meta)))
+
 (define-named-command com-what-cursor-position ()
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1737,6 +2055,9 @@
 		     char (char-code char) offset size
 		     (round (* 100 (/ offset size))) column)))
 
+(set-key 'com-what-cursor-position 'global-climacs-table
+	 '((#\x :control) (#\=)))
+
 (define-named-command com-eval-expression ((insertp 'boolean :prompt "Insert?"))
   (let* ((*package* (find-package :climacs-gui))
 	 (string (handler-case (accept 'string :prompt "Eval")
@@ -1753,6 +2074,10 @@
 	(insert-sequence (point (current-window)) result)
 	(display-message result))))
 
+(set-key `(com-eval-expression ,*numeric-argument-p*)
+	 'global-climacs-table
+	 '((#\: :shift :meta)))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
 ;;; Commenting
@@ -1773,6 +2098,10 @@
 	(loop repeat count do (backward-expression point syntax))
 	(loop repeat (- count) do (forward-expression point syntax)))))
 
+(set-key `(com-backward-expression ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\b :control :meta)))
+
 (define-named-command com-forward-expression ((count 'integer :prompt "Number of expresssions"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1781,6 +2110,10 @@
 	(loop repeat count do (forward-expression point syntax))
 	(loop repeat (- count) do (backward-expression point syntax)))))
 
+(set-key `(com-forward-expression ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\f :control :meta)))
+
 (define-named-command com-mark-expression ((count 'integer :prompt "Number of expressions"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1792,6 +2125,10 @@
 	(loop repeat count do (forward-expression mark syntax))
 	(loop repeat (- count) do (backward-expression mark syntax)))))
 
+(set-key `(com-mark-expression ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\@ :shift :control :meta)))
+
 (define-named-command com-kill-expression ((count 'integer :prompt "Number of expressions"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1803,6 +2140,10 @@
     (kill-ring-standard-push *kill-ring* (region-to-sequence mark point))
     (delete-region mark point)))
 
+(set-key `(com-kill-expression ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\k :control :meta)))
+
 (define-named-command com-backward-kill-expression
     ((count 'integer :prompt "Number of expressions"))
   (let* ((pane (current-window))
@@ -1815,6 +2156,10 @@
     (kill-ring-standard-push *kill-ring* (region-to-sequence mark point))
     (delete-region mark point)))
 
+(set-key `(com-backward-kill-expression ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\Backspace :control :meta)))
+
 (define-named-command com-forward-list ((count 'integer :prompt "Number of lists"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1823,6 +2168,10 @@
 	 (loop repeat count do (forward-list point syntax))
 	 (loop repeat (- count) do (backward-list point syntax)))))
 
+(set-key `(com-forward-list ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\n :control :meta)))
+
 (define-named-command com-backward-list ((count 'integer :prompt "Number of lists"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1831,6 +2180,10 @@
 	(loop repeat count do (backward-list point syntax))
 	(loop repeat (- count) do (forward-list point syntax)))))
 
+(set-key `(com-backward-list ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\p :control :meta)))
+
 (define-named-command com-down-list ((count 'integer :prompt "Number of lists"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1839,6 +2192,10 @@
 	(loop repeat count do (down-list point syntax))
 	(loop repeat (- count) do (backward-down-list point syntax)))))
 
+(set-key `(com-down-list ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\d :control :meta)))
+
 (define-named-command com-backward-down-list ((count 'integer :prompt "Number of lists"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1855,6 +2212,10 @@
 	(loop repeat count do (backward-up-list point syntax))
 	(loop repeat (- count) do (up-list point syntax)))))
 
+(set-key `(com-backward-up-list ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\u :control :meta)))
+
 (define-named-command com-up-list ((count 'integer :prompt "Number of lists"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1869,6 +2230,9 @@
 	 (syntax (syntax (buffer pane))))
     (eval-defun point syntax)))
 
+(set-key 'com-eval-defun 'global-climacs-table
+	 '((#\x :control :meta)))
+
 (define-named-command com-beginning-of-definition ((count 'integer :prompt "Number of definitions"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1877,6 +2241,10 @@
 	(loop repeat count do (beginning-of-definition point syntax))
 	(loop repeat (- count) do (end-of-definition point syntax)))))
 
+(set-key `(com-beginning-of-definition ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\a :control :meta)))
+
 (define-named-command com-end-of-definition ((count 'integer :prompt "Number of definitions"))
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1885,6 +2253,10 @@
 	(loop repeat count do (end-of-definition point syntax))
 	(loop repeat (- count) do (beginning-of-definition point syntax)))))
 
+(set-key `(com-end-of-definition ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\e :control :meta)))
+
 (define-named-command com-mark-definition ()
   (let* ((pane (current-window))
 	 (point (point pane))
@@ -1895,6 +2267,9 @@
       (setf (offset mark) (offset point)))
     (end-of-definition mark syntax)))
 
+(set-key 'com-mark-definition 'global-climacs-table
+	 '((#\h :control :meta)))
+
 (define-named-command com-package ()
   (let* ((pane (current-window))
 	 (syntax (syntax (buffer pane)))
@@ -1940,159 +2315,14 @@
 (define-named-command com-toggle-visible-mark ()
   (setf (mark-visible-p (current-window)) (not (mark-visible-p (current-window)))))
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; Dead-escape command tables
-
-(make-command-table 'dead-escape-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "dead-escape"
-				:menu 'dead-escape-climacs-table
-				:keystroke '(:escape))
-
-(defun dead-escape-set-key (gesture command)
-  (add-command-to-command-table command 'dead-escape-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-escape-set-key '(#\x) 'esa::com-extended-command)
-
-(defun global-set-key (gesture command)
-  (add-command-to-command-table command 'global-climacs-table
-				:keystroke gesture :errorp nil)
-  (when (and 
-	 (listp gesture)
-	 (find :meta gesture))
-    (dead-escape-set-key (remove :meta gesture)  command)))
-
 (loop for code from (char-code #\Space) to (char-code #\~)
-      do (global-set-key (code-char code) `(com-self-insert ,*numeric-argument-marker*)))
-
-(global-set-key #\Newline `(com-self-insert ,*numeric-argument-marker*))
-(global-set-key #\Tab 'com-indent-line)
-(global-set-key '(#\i :control) 'com-indent-line)
-(global-set-key '(#\: :shift :meta) `(com-eval-expression ,*numeric-argument-p*))
-(global-set-key '(#\j :control) 'com-newline-and-indent)
-(global-set-key '(#\f :control) `(com-forward-object ,*numeric-argument-marker*))
-(global-set-key '(#\b :control) `(com-backward-object ,*numeric-argument-marker*))
-(global-set-key '(#\a :control) 'com-beginning-of-line)
-(global-set-key '(#\e :control) 'com-end-of-line)
-(global-set-key '(#\d :control) `(com-delete-object ,*numeric-argument-marker* ,*numeric-argument-p*))
-(global-set-key '(#\p :control) `(com-previous-line ,*numeric-argument-marker*))
-(global-set-key '(#\l :control) 'com-full-redisplay)
-(global-set-key '(#\n :control) `(com-next-line ,*numeric-argument-marker*))
-(global-set-key '(#\o :control) `(com-open-line ,*numeric-argument-marker*))
-(global-set-key '(#\k :control) `(com-kill-line ,*numeric-argument-marker* ,*numeric-argument-p*))
-(global-set-key '(#\t :control) 'com-transpose-objects)
-(global-set-key '(#\Space :control) 'com-set-mark)
-(global-set-key '(#\y :control) 'com-yank)
-(global-set-key '(#\w :control) 'com-kill-region)
-(global-set-key '(#\w :control :meta) 'com-append-next-kill)
-(global-set-key '(#\e :meta) `(com-forward-sentence ,*numeric-argument-marker*))
-(global-set-key '(#\a :meta) `(com-backward-sentence ,*numeric-argument-marker*))
-(global-set-key '(#\k :meta) `(com-kill-sentence ,*numeric-argument-marker*))
-(global-set-key '(#\@ :meta :control :shift) `(com-mark-expression ,*numeric-argument-marker*))
-(global-set-key '(#\f :meta) `(com-forward-word ,*numeric-argument-marker*))
-(global-set-key '(#\b :meta) `(com-backward-word ,*numeric-argument-marker*))
-(global-set-key '(#\t :meta) 'com-transpose-words)
-(global-set-key '(#\u :meta) 'com-upcase-word)
-(global-set-key '(#\l :meta) 'com-downcase-word)
-(global-set-key '(#\c :meta) 'com-capitalize-word)
-(global-set-key '(#\y :meta) 'com-rotate-yank) 
-(global-set-key '(#\z :meta) 'com-zap-to-character)
-(global-set-key '(#\w :meta) 'com-copy-region)
-(global-set-key '(#\v :control) 'com-page-down)
-(global-set-key '(#\v :meta) 'com-page-up)
-(global-set-key '(#\v :control :meta) 'com-scroll-other-window)
-(global-set-key '(#\V :control :meta :shift) 'com-scroll-other-window-up)
-(global-set-key '(#\< :shift :meta) 'com-beginning-of-buffer)
-(global-set-key '(#\> :shift :meta) 'com-end-of-buffer)
-(global-set-key '(#\m :meta) 'com-back-to-indentation)
-(global-set-key '(#\\ :meta) `(com-delete-horizontal-space ,*numeric-argument-p*))
-(global-set-key '(#\Space :meta) `(com-just-one-space ,*numeric-argument-marker*))
-(global-set-key '(#\^ :shift :meta) 'com-delete-indentation)
-(global-set-key '(#\q :meta) 'com-fill-paragraph)
-(global-set-key '(#\d :meta) `(com-kill-word ,*numeric-argument-marker*))
-(global-set-key '(#\Backspace :meta) `(com-backward-kill-word ,*numeric-argument-marker*))
-(global-set-key '(#\@ :meta :shift) `(com-mark-word ,*numeric-argument-marker*))
-(global-set-key '(#\/ :meta) 'com-dabbrev-expand)
-(global-set-key '(#\{ :meta :shift) `(com-backward-paragraph ,*numeric-argument-marker*))
-(global-set-key '(#\} :meta :shift) `(com-forward-paragraph ,*numeric-argument-marker*))
-(global-set-key '(#\h :meta) `(com-mark-paragraph ,*numeric-argument-marker*))
-(global-set-key '(#\s :control) 'com-isearch-forward)
-(global-set-key '(#\r :control) 'com-isearch-backward)
-(global-set-key '(#\_ :shift :meta) 'com-redo)
-(global-set-key '(#\_ :shift :control) 'com-undo)
-(global-set-key '(#\% :shift :meta) 'com-query-replace)
-(global-set-key '(#\= :meta) 'com-count-lines-region)
-(global-set-key '(:up) `(com-previous-line ,*numeric-argument-marker*))
-(global-set-key '(:down) `(com-next-line ,*numeric-argument-marker*))
-(global-set-key '(:left) `(com-backward-object ,*numeric-argument-marker*))
-(global-set-key '(:right) `(com-forward-object ,*numeric-argument-marker*))
-(global-set-key '(:left :control) `(com-backward-word ,*numeric-argument-marker*))
-(global-set-key '(:right :control) `(com-forward-word ,*numeric-argument-marker*))
-(global-set-key '(:home) 'com-beginning-of-line)
-(global-set-key '(:end) 'com-end-of-line)
-(global-set-key '(:prior) 'com-page-up)
-(global-set-key '(:next) 'com-page-down)
-(global-set-key '(:home :control) 'com-beginning-of-buffer)
-(global-set-key '(:end :control) 'com-end-of-buffer)
-(global-set-key #\Rubout `(com-delete-object ,*numeric-argument-marker* ,*numeric-argument-p*))
-(global-set-key #\Backspace `(com-backward-delete-object ,*numeric-argument-marker* ,*numeric-argument-p*))
-
-(global-set-key '(:insert) 'com-toggle-overwrite-mode)
-(global-set-key '(#\~ :meta :shift) 'com-not-modified)
-
-(global-set-key '(#\b :control :meta) `(com-backward-expression ,*numeric-argument-marker*))
-(global-set-key '(#\f :control :meta) `(com-forward-expression ,*numeric-argument-marker*))
-(global-set-key '(#\Backspace :control :meta) `(com-backward-kill-expression ,*numeric-argument-marker*))
-(global-set-key '(#\k :control :meta) `(com-kill-expression ,*numeric-argument-marker*))
-(global-set-key '(#\n :control :meta) `(com-forward-list ,*numeric-argument-marker*))
-(global-set-key '(#\p :control :meta) `(com-backward-list ,*numeric-argument-marker*))
-(global-set-key '(#\d :control :meta) `(com-down-list ,*numeric-argument-marker*))
-(global-set-key '(#\u :control :meta) `(com-backward-up-list ,*numeric-argument-marker*))
-(global-set-key '(#\x :control :meta) 'com-eval-defun)
-(global-set-key '(#\a :control :meta) `(com-beginning-of-definition ,*numeric-argument-marker*))
-(global-set-key '(#\e :control :meta) `(com-end-of-definition ,*numeric-argument-marker*))
-(global-set-key '(#\h :control :meta) 'com-mark-definition)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; C-x command table
-
-(make-command-table 'c-x-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "C-x"
-				:menu 'c-x-climacs-table
-				:keystroke '(#\x :control))
-
-(defun c-x-set-key (gesture command)
-  (add-command-to-command-table command 'c-x-climacs-table
-				:keystroke gesture :errorp nil))
-
-(c-x-set-key '(#\0) 'com-delete-window)
-(c-x-set-key '(#\1) 'com-single-window)
-(c-x-set-key '(#\2) 'com-split-window-vertically)
-(c-x-set-key '(#\3) 'com-split-window-horizontally)
-(c-x-set-key '(#\b) 'com-switch-to-buffer)
-(c-x-set-key '(#\f :control) 'com-find-file)
-(c-x-set-key '(#\r :control) 'com-find-file-read-only)
-(c-x-set-key '(#\q :control) 'com-toggle-read-only)
-(c-x-set-key '(#\f) `(com-set-fill-column ,*numeric-argument-marker*))
-(c-x-set-key '(#\h) 'com-mark-whole-buffer)
-(c-x-set-key '(#\i) 'com-insert-file)
-(c-x-set-key '(#\k) 'com-kill-buffer)
-(c-x-set-key '(#\o) 'com-other-window)
-(c-x-set-key '(#\r) 'com-redo)
-(c-x-set-key '(#\u) 'com-undo)
-(c-x-set-key '(#\]) `(com-forward-page ,*numeric-argument-marker*))
-(c-x-set-key '(#\[) `(com-backward-page ,*numeric-argument-marker*))
-(c-x-set-key '(#\p :control) `(com-mark-page ,*numeric-argument-marker* ,*numeric-argument-p*))
-(c-x-set-key '(#\l) 'com-count-lines-page)
-(c-x-set-key '(#\s :control) 'com-save-buffer)
-(c-x-set-key '(#\t :control) 'com-transpose-lines)
-(c-x-set-key '(#\w :control) 'com-write-buffer)
-(c-x-set-key '(#\x :control) 'com-exchange-point-and-mark)
-(c-x-set-key '(#\=) 'com-what-cursor-position)
-(c-x-set-key '(#\Backspace) `(com-backward-kill-sentence ,*numeric-argument-marker*))
+      do (set-key `(com-self-insert ,*numeric-argument-marker*)
+	     'global-climacs-table
+	     (list (list (code-char code)))))
+
+(set-key `(com-self-insert ,*numeric-argument-marker*)
+	 'global-climacs-table
+	 '((#\Newline)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
@@ -2101,174 +2331,78 @@
 (define-named-command com-insert-charcode ((code 'integer :prompt "Code point"))
   (insert-object (point (current-window)) (code-char code)))
 
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; Dead-acute command table
-
-(make-command-table 'dead-acute-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "dead-acute"
-				:menu 'dead-acute-climacs-table
-				:keystroke '(:dead--acute))
-
-(defun dead-acute-set-key (gesture command)
-  (add-command-to-command-table command 'dead-acute-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-acute-set-key '(#\A) '(com-insert-charcode 193))
-(dead-acute-set-key '(#\E) '(com-insert-charcode 201))
-(dead-acute-set-key '(#\I) '(com-insert-charcode 205))
-(dead-acute-set-key '(#\O) '(com-insert-charcode 211))
-(dead-acute-set-key '(#\U) '(com-insert-charcode 218))
-(dead-acute-set-key '(#\Y) '(com-insert-charcode 221))
-(dead-acute-set-key '(#\a) '(com-insert-charcode 225))
-(dead-acute-set-key '(#\e) '(com-insert-charcode 233))
-(dead-acute-set-key '(#\i) '(com-insert-charcode 237))
-(dead-acute-set-key '(#\o) '(com-insert-charcode 243))
-(dead-acute-set-key '(#\u) '(com-insert-charcode 250))
-(dead-acute-set-key '(#\y) '(com-insert-charcode 253))
-(dead-acute-set-key '(#\C) '(com-insert-charcode 199))
-(dead-acute-set-key '(#\c) '(com-insert-charcode 231))
-(dead-acute-set-key '(#\x) '(com-insert-charcode 215))
-(dead-acute-set-key '(#\-) '(com-insert-charcode 247))
-(dead-acute-set-key '(#\T) '(com-insert-charcode 222))
-(dead-acute-set-key '(#\t) '(com-insert-charcode 254))
-(dead-acute-set-key '(#\s) '(com-insert-charcode 223))
-(dead-acute-set-key '(#\Space) '(com-insert-charcode 39))
-
-(make-command-table 'dead-acute-dead-accute-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'dead-acute-climacs-table "dead-acute-dead-accute"
-				:menu 'dead-acute-dead-accute-climacs-table
-				:keystroke '(:dead--acute))
-
-(defun dead-acute-dead-accute-set-key (gesture command)
-  (add-command-to-command-table command 'dead-acute-dead-accute-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-acute-dead-accute-set-key '(#\A) '(com-insert-charcode 197))
-(dead-acute-dead-accute-set-key '(#\a) '(com-insert-charcode 229))
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; Dead-grave command table
-
-(make-command-table 'dead-grave-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "dead-grave"
-				:menu 'dead-grave-climacs-table
-				:keystroke '(:dead--grave))
-
-(defun dead-grave-set-key (gesture command)
-  (add-command-to-command-table command 'dead-grave-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-grave-set-key '(#\A) '(com-insert-charcode 192))
-(dead-grave-set-key '(#\E) '(com-insert-charcode 200))
-(dead-grave-set-key '(#\I) '(com-insert-charcode 204))
-(dead-grave-set-key '(#\O) '(com-insert-charcode 210))
-(dead-grave-set-key '(#\U) '(com-insert-charcode 217))
-(dead-grave-set-key '(#\a) '(com-insert-charcode 224))
-(dead-grave-set-key '(#\e) '(com-insert-charcode 232))
-(dead-grave-set-key '(#\i) '(com-insert-charcode 236))
-(dead-grave-set-key '(#\o) '(com-insert-charcode 242))
-(dead-grave-set-key '(#\u) '(com-insert-charcode 249))
-(dead-grave-set-key '(#\Space) '(com-insert-charcode 96))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; Dead-diaeresis command table
-
-(make-command-table 'dead-diaeresis-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "dead-diaeresis"
-				:menu 'dead-diaeresis-climacs-table
-				:keystroke '(:dead--diaeresis :shift))
-
-(defun dead-diaeresis-set-key (gesture command)
-  (add-command-to-command-table command 'dead-diaeresis-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-diaeresis-set-key '(#\A) '(com-insert-charcode 196))
-(dead-diaeresis-set-key '(#\E) '(com-insert-charcode 203))
-(dead-diaeresis-set-key '(#\I) '(com-insert-charcode 207))
-(dead-diaeresis-set-key '(#\O) '(com-insert-charcode 214))
-(dead-diaeresis-set-key '(#\U) '(com-insert-charcode 220))
-(dead-diaeresis-set-key '(#\a) '(com-insert-charcode 228))
-(dead-diaeresis-set-key '(#\e) '(com-insert-charcode 235))
-(dead-diaeresis-set-key '(#\i) '(com-insert-charcode 239))
-(dead-diaeresis-set-key '(#\o) '(com-insert-charcode 246))
-(dead-diaeresis-set-key '(#\u) '(com-insert-charcode 252))
-(dead-diaeresis-set-key '(#\y) '(com-insert-charcode 255))
-(dead-diaeresis-set-key '(#\Space) '(com-insert-charcode 34))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; Dead-tilde command table
-
-(make-command-table 'dead-tilde-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "dead-tilde"
-				:menu 'dead-tilde-climacs-table
-				:keystroke '(:dead--tilde :shift))
-
-(defun dead-tilde-set-key (gesture command)
-  (add-command-to-command-table command 'dead-tilde-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-tilde-set-key '(#\A) '(com-insert-charcode 195))
-(dead-tilde-set-key '(#\N) '(com-insert-charcode 209))
-(dead-tilde-set-key '(#\a) '(com-insert-charcode 227))
-(dead-tilde-set-key '(#\n) '(com-insert-charcode 241))
-(dead-tilde-set-key '(#\E) '(com-insert-charcode 198))
-(dead-tilde-set-key '(#\e) '(com-insert-charcode 230))
-(dead-tilde-set-key '(#\D) '(com-insert-charcode 208))
-(dead-tilde-set-key '(#\d) '(com-insert-charcode 240))
-(dead-tilde-set-key '(#\O) '(com-insert-charcode 216))
-(dead-tilde-set-key '(#\o) '(com-insert-charcode 248))
-(dead-tilde-set-key '(#\Space) '(com-insert-charcode 126))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; Dead-circumflex command table
-
-(make-command-table 'dead-circumflex-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "dead-circumflex"
-				:menu 'dead-circumflex-climacs-table
-				:keystroke '(:dead--circumflex :shift))
-
-(defun dead-circumflex-set-key (gesture command)
-  (add-command-to-command-table command 'dead-circumflex-climacs-table
-				:keystroke gesture :errorp nil))
-
-(dead-circumflex-set-key '(#\A) '(com-insert-charcode 194))
-(dead-circumflex-set-key '(#\E) '(com-insert-charcode 202))
-(dead-circumflex-set-key '(#\I) '(com-insert-charcode 206))
-(dead-circumflex-set-key '(#\O) '(com-insert-charcode 212))
-(dead-circumflex-set-key '(#\U) '(com-insert-charcode 219))
-(dead-circumflex-set-key '(#\a) '(com-insert-charcode 226))
-(dead-circumflex-set-key '(#\e) '(com-insert-charcode 234))
-(dead-circumflex-set-key '(#\i) '(com-insert-charcode 238))
-(dead-circumflex-set-key '(#\o) '(com-insert-charcode 244))
-(dead-circumflex-set-key '(#\u) '(com-insert-charcode 251))
-(dead-circumflex-set-key '(#\Space) '(com-insert-charcode 94))
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; 
-;;; C-c command table
-
-(make-command-table 'c-c-climacs-table :errorp nil)
-
-(add-menu-item-to-command-table 'global-climacs-table "C-c"
-				:menu 'c-c-climacs-table
-				:keystroke '(#\c :control))
-
-(defun c-c-set-key (gesture command)
-  (add-command-to-command-table command 'c-c-climacs-table
-				:keystroke gesture :errorp nil))
-
-(c-c-set-key '(#\l :control) 'com-load-file)
+(set-key '(com-insert-charcode 193) 'global-climacs-table '((:dead--acute)(#\A)))
+(set-key '(com-insert-charcode 201) 'global-climacs-table '((:dead--acute)(#\E)))
+(set-key '(com-insert-charcode 205) 'global-climacs-table '((:dead--acute)(#\I)))
+(set-key '(com-insert-charcode 211) 'global-climacs-table '((:dead--acute)(#\O)))
+(set-key '(com-insert-charcode 218) 'global-climacs-table '((:dead--acute)(#\U)))
+(set-key '(com-insert-charcode 221) 'global-climacs-table '((:dead--acute)(#\Y)))
+(set-key '(com-insert-charcode 225) 'global-climacs-table '((:dead--acute)(#\a)))
+(set-key '(com-insert-charcode 233) 'global-climacs-table '((:dead--acute)(#\e)))
+(set-key '(com-insert-charcode 237) 'global-climacs-table '((:dead--acute)(#\i)))
+(set-key '(com-insert-charcode 243) 'global-climacs-table '((:dead--acute)(#\o)))
+(set-key '(com-insert-charcode 250) 'global-climacs-table '((:dead--acute)(#\u)))
+(set-key '(com-insert-charcode 253) 'global-climacs-table '((:dead--acute)(#\y)))
+(set-key '(com-insert-charcode 199) 'global-climacs-table '((:dead--acute)(#\C)))
+(set-key '(com-insert-charcode 231) 'global-climacs-table '((:dead--acute)(#\c)))
+(set-key '(com-insert-charcode 215) 'global-climacs-table '((:dead--acute)(#\x)))
+(set-key '(com-insert-charcode 247) 'global-climacs-table '((:dead--acute)(#\-)))
+(set-key '(com-insert-charcode 222) 'global-climacs-table '((:dead--acute)(#\T)))
+(set-key '(com-insert-charcode 254) 'global-climacs-table '((:dead--acute)(#\t)))
+(set-key '(com-insert-charcode 223) 'global-climacs-table '((:dead--acute)(#\s)))
+(set-key '(com-insert-charcode 39) 'global-climacs-table '((:dead--acute)(#\Space)))
+
+(set-key '(com-insert-charcode 197) 'global-climacs-table '((:dead--acute)(:dead--acute)(#\A)))
+(set-key '(com-insert-charcode 229) 'global-climacs-table '((:dead--acute)(:dead--acute)(#\a)))
+
+(set-key '(com-insert-charcode 192) 'global-climacs-table '((:dead--grave)(#\A)))
+(set-key '(com-insert-charcode 200) 'global-climacs-table '((:dead--grave)(#\E)))
+(set-key '(com-insert-charcode 204) 'global-climacs-table '((:dead--grave)(#\I)))
+(set-key '(com-insert-charcode 210) 'global-climacs-table '((:dead--grave)(#\O)))
+(set-key '(com-insert-charcode 217) 'global-climacs-table '((:dead--grave)(#\U)))
+(set-key '(com-insert-charcode 224) 'global-climacs-table '((:dead--grave)(#\a)))
+(set-key '(com-insert-charcode 232) 'global-climacs-table '((:dead--grave)(#\e)))
+(set-key '(com-insert-charcode 236) 'global-climacs-table '((:dead--grave)(#\i)))
+(set-key '(com-insert-charcode 242) 'global-climacs-table '((:dead--grave)(#\o)))
+(set-key '(com-insert-charcode 249) 'global-climacs-table '((:dead--grave)(#\u)))
+(set-key '(com-insert-charcode 96) 'global-climacs-table '((:dead--grave)(#\Space)))
+
+(set-key '(com-insert-charcode 196) 'global-climacs-table '((:dead--diaeresis :shift)(#\A)))
+(set-key '(com-insert-charcode 203) 'global-climacs-table '((:dead--diaeresis :shift)(#\E)))
+(set-key '(com-insert-charcode 207) 'global-climacs-table '((:dead--diaeresis :shift)(#\I)))
+(set-key '(com-insert-charcode 214) 'global-climacs-table '((:dead--diaeresis :shift)(#\O)))
+(set-key '(com-insert-charcode 220) 'global-climacs-table '((:dead--diaeresis :shift)(#\U)))
+(set-key '(com-insert-charcode 228) 'global-climacs-table '((:dead--diaeresis :shift)(#\a)))
+(set-key '(com-insert-charcode 235) 'global-climacs-table '((:dead--diaeresis :shift)(#\e)))
+(set-key '(com-insert-charcode 239) 'global-climacs-table '((:dead--diaeresis :shift)(#\i)))
+(set-key '(com-insert-charcode 246) 'global-climacs-table '((:dead--diaeresis :shift)(#\o)))
+(set-key '(com-insert-charcode 252) 'global-climacs-table '((:dead--diaeresis :shift)(#\u)))
+(set-key '(com-insert-charcode 255) 'global-climacs-table '((:dead--diaeresis :shift)(#\y)))
+(set-key '(com-insert-charcode 34) 'global-climacs-table '((:dead--diaeresis :shift)(#\Space)))
+
+(set-key '(com-insert-charcode 195) 'global-climacs-table '((:dead--tilde :shift)(#\A)))
+(set-key '(com-insert-charcode 209) 'global-climacs-table '((:dead--tilde :shift)(#\N)))
+(set-key '(com-insert-charcode 227) 'global-climacs-table '((:dead--tilde :shift)(#\a)))
+(set-key '(com-insert-charcode 241) 'global-climacs-table '((:dead--tilde :shift)(#\n)))
+(set-key '(com-insert-charcode 198) 'global-climacs-table '((:dead--tilde :shift)(#\E)))
+(set-key '(com-insert-charcode 230) 'global-climacs-table '((:dead--tilde :shift)(#\e)))
+(set-key '(com-insert-charcode 208) 'global-climacs-table '((:dead--tilde :shift)(#\D)))
+(set-key '(com-insert-charcode 240) 'global-climacs-table '((:dead--tilde :shift)(#\d)))
+(set-key '(com-insert-charcode 216) 'global-climacs-table '((:dead--tilde :shift)(#\O)))
+(set-key '(com-insert-charcode 248) 'global-climacs-table '((:dead--tilde :shift)(#\o)))
+(set-key '(com-insert-charcode 126) 'global-climacs-table '((:dead--tilde :shift)(#\Space)))
+
+(set-key '(com-insert-charcode 194) 'global-climacs-table '((:dead--circumflex :shift)(#\A)))
+(set-key '(com-insert-charcode 202) 'global-climacs-table '((:dead--circumflex :shift)(#\E)))
+(set-key '(com-insert-charcode 206) 'global-climacs-table '((:dead--circumflex :shift)(#\I)))
+(set-key '(com-insert-charcode 212) 'global-climacs-table '((:dead--circumflex :shift)(#\O)))
+(set-key '(com-insert-charcode 219) 'global-climacs-table '((:dead--circumflex :shift)(#\U)))
+(set-key '(com-insert-charcode 226) 'global-climacs-table '((:dead--circumflex :shift)(#\a)))
+(set-key '(com-insert-charcode 234) 'global-climacs-table '((:dead--circumflex :shift)(#\e)))
+(set-key '(com-insert-charcode 238) 'global-climacs-table '((:dead--circumflex :shift)(#\i)))
+(set-key '(com-insert-charcode 244) 'global-climacs-table '((:dead--circumflex :shift)(#\o)))
+(set-key '(com-insert-charcode 251) 'global-climacs-table '((:dead--circumflex :shift)(#\u)))
+(set-key '(com-insert-charcode 94) 'global-climacs-table '((:dead--circumflex :shift)(#\Space)))
 
 (define-named-command com-regex-search-forward ()
   (let ((string (accept 'string :prompt "RE search"


Index: climacs/esa.lisp
diff -u climacs/esa.lisp:1.13 climacs/esa.lisp:1.14
--- climacs/esa.lisp:1.13	Sat Aug  6 22:51:20 2005
+++ climacs/esa.lisp	Tue Aug 30 19:28:52 2005
@@ -301,7 +301,7 @@
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
-;;; comand table manipulation
+;;; command table manipulation
 
 (defun ensure-subtable (table gesture)
   (let* ((event (make-instance
@@ -319,15 +319,18 @@
     (command-menu-item-value
      (find-keystroke-item event table :errorp nil))))
     
-      
 (defun set-key (command table gestures)
-  (if (null (cdr gestures))
-      (add-command-to-command-table
-       command table :keystroke (car gestures) :errorp nil)
-      (set-key command
-	       (ensure-subtable table (car gestures))
-	       (cdr gestures))))
-  
+  (let ((gesture (car gestures)))
+    (cond ((null (cdr gestures))
+	   (add-command-to-command-table
+	    command table :keystroke gesture :errorp nil)
+	   (when (and (listp gesture)
+		      (find :meta gesture))
+	     (set-key command table (list (list :escape) (remove :meta gesture)))))
+	  (t (set-key command
+		      (ensure-subtable table gesture)
+		      (cdr gestures))))))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
 ;;; standard key bindings 




More information about the Climacs-cvs mailing list