Cómo volver a vincular un enlace desde un modo principal

Cómo volver a vincular un enlace desde un modo principal

Estoy usando el modo org y quiero anular el enlace local de C-c C-x C-z, vinculado org-resolve-clocksde forma predeterminada. Elmanualdice

Como se describe en Mapas de teclas locales, los modos principales y menores pueden definir mapas de teclas locales. ... Si desea cambiar uno de estos mapas de teclas, debe utilizar el gancho de modo (ver Ganchos).

Entonces tengo estas líneas en mi ~/.emacs:

(global-set-key (kbd "C-c C-x C-SPC") 'my-function)

(global-set-key (kbd "C-c C-x C-z") 'my-function)

(add-hook 'org-mode-hook
      (lambda ()
        (local-set-key (kbd "C-c C-x C-z") 'my-function)))

La primera línea vincula una clave independiente a la función. La segunda línea vincula una clave ya vinculada en modo organización a la función. Las líneas restantes definen el anzuelo.

Empiezo Emacs de nuevo y describo las claves. C-c C-x C-SPCestá vinculado my-functiony C-c C-x C-zestá vinculado al valor predeterminado org-resolve-clocksen un búfer de organización y a my-functionotros lugares. Si ejecuto el código de enlace de forma interactiva en un búfer de organización con M-::

(local-set-key (kbd "C-c C-x C-z") 'my-function)

entonces la clave está vinculada my-functiony no la predeterminada.

También probé otra respuesta eneste hilo sobre cómo configurar combinaciones de teclas específicas del modo principal en emacsy falló:

(with-eval-after-load 'org-mode
  '(define-key org-mode-map (kbd "C-c C-x C-SPC") 'my-function)
)

Estoy ejecutando Emacs 25.3 (9.0).

¿Cómo puedo anular un enlace establecido en un modo principal?

Respuesta1

Puede vincular su función en modo organización usando define-key:

(define-key org-mode-map (kbd "C-c C-x C-z") 'my-function)

Anulará cualquier enlace global y funcionará solo en un búfer en modo organización.

información relacionada