Como alias keybindings no emacs?

0

Por exemplo, eu uso bastante C-c a a , e gostaria de mapear isso facilmente para f1 .

Eu sei que posso procurar por qual função a primeira ligação finalmente chama (dessa vez foi org-agenda-list ), mas estou atrás de uma solução mais geral. Eu não acho que posso usar (global-set-key KEY COMMAND) , pois não tenho certeza se pressionar teclas é um COMMAND em si (mas talvez possa ser?)

Então, como ligar "vários pressionamentos de tecla sucessivos" a outra ligação?

    
por Nikana Reklawyks 02.11.2012 / 17:58

2 respostas

2

O código que você está procurando é:

(define-key keymap-1 (kbd "new prefix")
 (lookup-key keymap-2 (kbd "old prefix")))

Normalmente, você não precisa saber os nomes dos keymaps como as expressões (current-global-map) e (current-local-map) retornam os mapas global e local em força. Embora o manual do emacs diga que você pode mapear novamente qualquer uma das teclas de função, descobri que coisas estranhas podem acontecer se você tentar mapear novamente f1, f2, f3, f4 ou f10. Por esse motivo, costumo remapear f5 ou f6. Como um exemplo do meu arquivo .emacs, o código:

(add-hook 'planner-mode-hook
    #'(lambda ()
        (local-set-key (kbd "M-RET") 'muse-insert-list-item)
        (local-set-key (kbd "M-S-RET") 'pcomplete)
        (define-key (current-local-map) (kbd "<f5>")
          (lookup-key (current-local-map) (kbd "C-c C-j")))))

define M-RET e M-S-RET no modo planejador e também faz o prefixo f5 em um alias para C-c C-j nesse modo.

Saiba, no entanto, que isso não acontece sempre funcionam como lookup-key parecem entender macros que, infelizmente, são legal em keymaps. Em tais casos, você geralmente pode encontrar uma maneira de contornar isso. Pergunte novamente se você tem problemas.

    
por 20.11.2012 / 07:19
-1

Eu acho, mas não tentei, você deveria fazer algo assim:

(defun org-execute-my-action ()
  (local-set-key (kbd "C-c q") 'org-name-of-function))

(add-hook 'org-mode-hook 'org-execute-my-action)

Esta postagem parece ser o lugar para mais detalhes .

    
por 04.11.2012 / 20:07