Desenlazar clave utilizando use-package

10

Estoy tratando de desvincular lo org-cycle-agenda-filesque está configurado por defecto en C-'y C-,.

Mi arma preferida para hacerlo es usar el paquete de paquete.

En la página github.com/use-package/bind-key.el he encontrado las siguientes líneas:

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

Esto me llevó a intentar sin éxito las siguientes variaciones:

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

Después de ese fracaso, probé una solución "tradicional" al problema.

La información encontrada en el manual de gnu.org , y algunas respuestas de emacs.stackexchange resultaron en que produjera los siguientes estragos inútiles:

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

Sí ... Ninguna de estas variaciones vorks. :RE

Me encantaría encontrar una solución basada en paquetes de uso , ya que ya estoy usando algunas de sus increíbles capacidades.

Cualquier tipo de sugerencia es bienvenida.

Mente vacía
fuente

Respuestas:

14

Si C-h fe ingresas unbind-key, la ayuda dice:

unbind-key es una macro Lisp autocargada en `bind-key.el '.

(desenlazar KEY-NAME y KEYMAP opcional)

No documentado

El segundo argumento unbind-keyes un mapa clave, por ejemplo org-mode-map.

Esto funciona para mi:

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

Un buen lugar para poner esto sería la :configsección de un use-packageformulario.

Greg Hendershott
fuente
4

Sí, la desvinculación no parece elegante, pero ese es el enfoque principal de acuerdo con esta respuesta .

En cuanto a use-package, he estado usando unbind bajo: init directive así:

:init
(unbind-key "C-'" org-mode-map)
(unbind-key "C-," org-mode-map)
Usuario de Emacs
fuente
Debe poner esto dentro :config, y no :init, porque en :initel mapa de teclas puede que todavía no se cargue.
ギ ョ ー ム