2008-11-18 7 views
10

paredit bindet M-<up> und M-<down>, aber ich möchte windmove diese Tastenbelegungen besitzen. Ich habe den payment-Modus so eingestellt, dass er nur in bestimmten Modi aktiviert wird, aber windmove wird global ausgeführt. Ich will, dass Windmove gewinnt, aber ParaTent stiehlt diese Tastenbindungen, wenn es geladen wird.Wie mit in Konflikt stehenden Tastaturkürzeln umzugehen

Wie kann ich Pareddit leicht davon abhalten, auf windmove Tastaturbelegungen zu stampfen? Ich ging in paredit.el und kommentieren die Zeilen, die die Tastenbelegung festlegen, aber das ist alles andere als ideal (ich muss daran denken, dies jedes Mal zu tun, wenn ich Paredate aktualisiere).

Kann ich generell eine elisp-Datei laden, während bestimmte Tastaturbelegungen vor Änderungen geschützt werden?

Antwort

11

Sie können eval-after-load verwenden paredit das Verhalten nach dem Laden zu konfigurieren, wie es in seiner Stellungnahme beschrieben:

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

So zum Beispiel:

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

Dies ist auch eine gute allgemeine Antwort - vielen Dank. Mein einziger Beitrag ist, darauf hinzuweisen, dass, wenn Sie auch eine Tastenbelegung ändern (anstatt sie zu entfernen), Sie den Namen der paredit-Funktion setzen würden, wo Emerick das "nil" oben setzt, wie ich es für "vorwärts" getan habe. slurp ":' (eval-nach-load 'paret ' (prognose (define-key-parität-modus-karte (kbd "") 'paret-forward-slurp-sexp))) ' – quux00

1

Diese Frage beantwortet wurde vor: Globally override key binding in Emacs

Sie erstellen Ihren eigenen untergeordneten Modus mit Ihren bevorzugten Tastenbelegungen und aktivieren ihn global, so dass er alle anderen Tastenbelegungen außer Kraft setzt.

Verwandte Themen