Entbinden des Schlüssels mit dem Use-Package

10

Ich versuche, die Bindung aufzuheben, org-cycle-agenda-filesdie standardmäßig auf C-'und eingestellt ist C-,.

Meine bevorzugte Waffe ist das Use-Package- Paket.

Auf der Seite github.com/use-package/bind-key.el habe ich folgende Zeilen gefunden:

;; To unbind a key within a keymap (for example, to stop your favorite major
;; mode from changing a binding that you don't want to override everywhere),
;; use `unbind-key':
;;
;;   (unbind-key "c-c x" some-other-mode-map)

Dies führte dazu, dass ich erfolglos folgende Variationen versuchte:

(unbind-key "C-'" )
(unbind-key "C-," )
(unbind-key "C-'" (org-cycle-agenda-files))
(unbind-key "C-," (org-cycle-agenda-files))
(bind-keys :map org-mode-map
       :unbind "C-'")
(unbind-key "C-'" org-cycle-agenda-files)

Nach diesem Fehler habe ich versucht, eine "traditionelle" Lösung für das Problem zu finden.

Informationen im Handbuch von gnu.org und einige Antworten von emacs.stackexchange führten dazu, dass ich folgendes nutzloses Chaos verursachte:

(define-key (org-cycle-agenda-files) key nil)
(define-key (current-global-map) "C-'" nil)
(local-unset-key "C-'")
(global-unset-key "C-'")
(with-eval-after-load org-mode
  (unbind-key "C-'" org-mode-map)
  (unbind-key "C-," org-mode-map))
(global-set-key (kbd "C-'") 'nil)

Ja .... Keine dieser Variationen vorks. : D.

Ich würde gerne eine auf Anwendungspaketen basierende Lösung finden, da ich bereits einige der fantastischen Funktionen verwende.

Jeder Vorschlag ist willkommen.

Empty_Mind
quelle

Antworten:

14

Wenn Sie C-h fund eingeben unbind-key, sagt die Hilfe:

Unbind-Key ist ein automatisch geladenes Lisp-Makro in `bind-key.el '.

(Schlüssel aufheben KEY-NAME & optionale KEYMAP)

Nicht dokumentiert.

Das zweite Argument unbind-keyist eine Schlüsselkarte - zum Beispiel org-mode-map.

Das funktioniert bei mir:

(require 'bind-key)
(unbind-key "C-," org-mode-map)
(unbind-key "C-'" org-mode-map)

Ein guter Ort, um dies zu setzen, wäre der :configAbschnitt eines use-packageFormulars.

Greg Hendershott
quelle
4

Ja, die Entbindung sieht nicht elegant aus, aber das ist der Hauptansatz gemäß dieser Antwort .

Was das Use-Package betrifft, habe ich Unbind unter: init-Direktive wie folgt verwendet:

:init
(unbind-key "C-'" org-mode-map)
(unbind-key "C-," org-mode-map)
Emacs Benutzer
quelle
Sie müssen dies einfügen :configund nicht :init, da :initdie Keymap möglicherweise noch nicht geladen ist.
ム ョ ー ム