Como vincular novamente uma ligação de um modo principal

Como vincular novamente uma ligação de um modo principal

Estou usando o modo organizacional e quero substituir a ligação local de C-c C-x C-z, vinculada org-resolve-clockspor 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-SPCestá vinculado my-functione C-c C-x C-zestá vinculado ao padrão org-resolve-clocksem um buffer organizacional e em my-functionoutro 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-functione 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.

informação relacionada