2011-01-06 4 views
1

Слизь переназначает несколько ключей, которые мне нравятся, и они установлены в глобальном наборе ключей.Переделка клавиш SLIME

Хотелось бы избежать прямого редактирования slime.el.

Какова процедура переопределения ключей в заданном режиме?


Update:

В вашем .emacs, установите режим-карту непосредственно:

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

ответ

1

Это не так уж легко переопределить ключ для режима, так как он может обеспечить несколько раскладок. И может быть много режимов, которые захватывают мои любимые клавиши.

Я решил это так: я определил второстепенный режим, который ничего не делает, кроме его собственной раскладки клавиатуры. Я поставил там несколько клавиш, которые хотят быть действительно глобальными.

;; 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) 
...