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

0

Estou usando o modo de organização e quero substituir a ligação local de C-c C-x C-z , vinculada a org-resolve-clocks por padrão. O manual diz

As described in Local Keymaps, major modes and minor modes can define local keymaps. ... If you wish to change one of these keymaps, you must use the mode hook (see Hooks).

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 liga uma chave não ligada à função. A segunda linha liga 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á vinculada a my-function e C-c C-x C-z está vinculada ao padrão org-resolve-clocks em um buffer organizacional e a my-function em outro lugar. Se eu executar o código de ligação interativamente em um buffer de organização com M-: :

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

então a chave está vinculada a my-function e não ao padrão.

Eu também tentei outra resposta em este tópico sobre a configuração de atalhos específicos de modo principal no emacs e 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 um modo principal?

    
por mmorin 20.07.2018 / 17:03

1 resposta

1

Você pode vincular sua função no modo de organização 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 orgânico.

    
por 25.07.2018 / 08:43

Tags