Aqui está uma maneira genérica de definir ligações de teclas específicas do buffer.
- Crie um modo secundário temporário (salve o snippet abaixo nele
temp-mode.el
e require
no seu init.el
.
- Ative esse
temp-mode
modo secundário e defina o mapa de teclas desse modo secundário apenas no (s) buffer (es) necessário (s).
Coloque o Local Variables
trecho abaixo no buffer onde deseja a ligação de chave personalizada. Abaixo estão exemplos de org-mode
arquivos.
No buffer ONE
# Local Variables:
# eval: (temp-mode 1)
# eval: (define-key temp-mode-map (kbd "<f10>") 'function-ONE)
# End:
Se algum outro buffer redefinir a mesma combinação de teclas usando,
No buffer DOIS
# Local Variables:
# eval: (temp-mode 1)
# eval: (define-key temp-mode-map (kbd "<f10>") 'function-TWO)
# End:
então a nova ligação se tornará eficaz em fazer M-x revert-buffer
.
Isto é o que eu faria se precisas alternar entre esses dois buffers com muita frequência e se precisar usar a F10ligação em ambos:
- Trabalhe no buffer UM
C-x C-s
(salvar) e mude para o buffer DOIS
revert-buffer
(atualizar ligações), trabalhe no buffer DOIS C-x C-s
e alterne para o buffer UM
revert-buffer
(atualizar ligações), trabalhe no buffer UM C-x C-s
e mude para o buffer DOIS
Mas prefiro vincular os diferentes comandos específicos do buffer a diferentes chaves.
Modo secundário temporário
;; temp-mode.el
;; Temporary minor mode
;; Main use is to enable it only in specific buffers to achieve the goal of
;; buffer-specific keymaps
(defvar temp-mode-map (make-sparse-keymap)
"Keymap while temp-mode is active.")
;;;###autoload
(define-minor-mode temp-mode
"A temporary minor mode to be activated only specific to a buffer."
nil
:lighter " Temp"
temp-mode-map)
(provide 'temp-mode)