
Estou usando o modo organizacional e quero substituir a ligação local de C-c C-x C-z
, vinculada org-resolve-clocks
por padrão. Omanualdiz
Conforme descrito em Mapas de teclado locais, os modos principais e os modos secundários podem definir mapas de teclado locais. ... Se você deseja alterar um desses mapas de teclado, você deve usar o gancho de modo (consulte Ganchos).
Então eu tenho essas linhas no meu ~/.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)))
A primeira linha vincula uma chave não vinculada à função. A segunda linha vincula uma chave já vinculada no modo organizacional à função. As linhas restantes definem o gancho.
Eu inicio o Emacs novamente e descrevo as chaves. C-c C-x C-SPC
está vinculado my-function
e C-c C-x C-z
está vinculado ao padrão org-resolve-clocks
em um buffer organizacional e em my-function
outro lugar. Se eu executar o código de ligação interativamente em um buffer organizacional com M-:
:
(local-set-key (kbd "C-c C-x C-z") 'my-function)
então a chave está vinculada my-function
e não ao padrão.
Eu também tentei outra resposta emeste tópico sobre como configurar atalhos de teclado específicos do modo principal no emacse falhou:
(with-eval-after-load 'org-mode
'(define-key org-mode-map (kbd "C-c C-x C-SPC") 'my-function)
)
Estou executando o Emacs 25.3 (9.0).
Como posso substituir uma ligação em set no modo principal?
Responder1
Você pode vincular sua função no modo organizacional usando define-key
:
(define-key org-mode-map (kbd "C-c C-x C-z") 'my-function)
Ele substituirá quaisquer ligações globais e funcionará apenas em um buffer de modo organizacional.