2011-01-06 14 views
1

Slime verschiebt mehrere Schlüssel, die ich gerne benutze und in global-set-key gesetzt habe.Neubelegung der SLIME-Tasten

Ich möchte vermeiden, direkt slime.el bearbeiten.

Was ist die Routine zum Überschreiben von Schlüsseln in einem bestimmten Modus?


Update:

In .emacs, die Modus-Karte direkt eingestellt:

(define-key slime-mode-map "\M-n" 'next-line) 
(define-key slime-mode-map "\M-p" 'previous-line) 

Antwort

1

Es ist nicht zu einfach, einen Schlüssel für einen Modus neu zu definieren, da es mehrere Tastaturbelegungen zur Verfügung stellen kann. Und es kann viele Modi geben, die meine Lieblingsschlüssel greifen.

Ich löste es so: Ich definierte einen untergeordneten Modus, der nichts anderes tut, als es seine eigene Tastaturbelegung hat. Ich habe ein paar Schlüssel dort, ich möchte wirklich global sein.

;; my minor mode for really global keybindings 
(defvar my-keys-minor-mode-map (make-keymap) "my-keys-minor-mode keymap.")       
(define-minor-mode my-keys-minor-mode 
    "My minor mode for global keybindings." 
    :init-value t :lighter "" :keymap 'my-keys-minor-mode-map) 
(defun my-minibuffer-setup-hook() 
    (my-keys-minor-mode 0)) 
(add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook) 
(my-keys-minor-mode 1) 



;; for example 
(define-key my-keys-minor-mode-map (kbd "C-a") 'mark-whole-buffer) 
...