2008-11-18 21 views
10

paredit enlaza M-<up> y M-<down>, pero quiero windmove para poseer esas combinaciones de teclas. Tengo configurado el modo de crédito para activar solo en ciertos modos, pero windmove está configurado para ejecutarse globalmente. Quiero que windmove gane, pero paredit roba esas combinaciones de teclas cuando se carga.Cómo manejar combinaciones de teclas conflictivas

¿Cómo puedo evitar fácilmente que paredit pise las combinaciones de teclas de windmove? He estado yendo al paredit.el y comentando las líneas que configuran la combinación de teclas, pero esto está lejos de ser ideal (tengo que recordar hacer esto cada vez que actualizo el crédito).

Más en general, ¿puedo cargar un archivo elisp mientras se "protege" ciertas combinaciones de teclas para que no se modifiquen?

Respuesta

11

Puede utilizar eval-after-load para configurar el comportamiento de paredit después de cargarlo, como se describe en sus comentarios:

;;; Customize paredit using `eval-after-load': 
;;; 
;;; (eval-after-load 'paredit 
;;;  '(progn ...redefine keys, &c....)) 

Así, por ejemplo:

(eval-after-load 'paredit 
    '(progn 
    (define-key paredit-mode-map (kbd "<M-up>") nil) 
    (define-key paredit-mode-map (kbd "<M-down>") nil))) 
+0

Esta es también una gran respuesta de propósito general, muchas gracias. Mi única contribución es señalar que si también quieres alterar una combinación de teclas (en lugar de eliminarla), pondrías el nombre de la función de paredit donde Emerick puso el 'nil' arriba, como he hecho para" forward- sorber ":' (eval-after-load 'paredit ' (progn (define-key paredit-mode-map (kbd "") 'paredit-forward-slurp-sexp))) ' – quux00

1

Esta pregunta ha sido respondida antes: Globally override key binding in Emacs

Crea su propio modo secundario con sus combinaciones de teclas preferidas y lo habilita globalmente, de modo que anula todas las demás combinaciones de teclas.

Cuestiones relacionadas