Libération de la clé à l'aide de use-package


10

J'essaie de délier org-cycle-agenda-filesqui est défini par défaut sur C-'et C-,.

Mon arme de choix pour le faire est le package use- package.

Sur la page github.com/use-package/bind-key.el, j'ai trouvé les lignes suivantes:

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

Cela m'a conduit à essayer en vain les variantes suivantes:

(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)

Après cet échec, j'ai essayé une solution "traditionnelle" au problème.

Les informations trouvées dans le manuel gnu.org et certaines réponses emacs.stackexchange m'ont amené à produire les ravages inutiles suivants:

(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)

Ouais .... Aucune de ces variations vorks. :RÉ

J'aimerais trouver une solution basée sur un package d'utilisation , car j'utilise déjà certaines de ses capacités impressionnantes.

Toute suggestion est la bienvenue.

Réponses:


14

Si vous C-h fet entrez unbind-key, l'aide indique:

unbind-key est une macro Lisp chargée automatiquement dans `bind-key.el '.

(clé non liée NOM-CLÉ et carte-clé en option)

Non documenté.

Le deuxième argument de unbind-keyest une carte clé - par exemple org-mode-map.

Cela fonctionne pour moi:

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

Un bon endroit pour le mettre serait la :configsection d'un use-packageformulaire.


4

Oui, le déliement n'a pas l'air élégant, mais c'est l'approche principale selon cette réponse .

En ce qui concerne use-package, j'utilise unbind sous la directive: init comme ceci:

:init
(unbind-key "C-'" org-mode-map)
(unbind-key "C-," org-mode-map)

Vous devez le mettre à l'intérieur :config, et non :init, car dans :initle clavier, il se peut qu'il ne soit pas encore chargé.
ギ ョ ー ム
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.