
Estoy usando el modo org y quiero anular el enlace local de C-c C-x C-z
, vinculado org-resolve-clocks
de 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-SPC
está vinculado my-function
y C-c C-x C-z
está vinculado al valor predeterminado org-resolve-clocks
en un búfer de organización y a my-function
otros 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-function
y 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.