Pregunta:
¿Es posible establecer combinaciones de teclas específicas para el búfer?
Tengo lo siguiente en uno de mis archivos de organización:
# Local Variables:
# eval: (local-set-key (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer)
# End:
Pero este enlace persiste también para otros archivos en modo org. Si abro un archivo con un modo principal diferente, se activa mi enlace de teclas predeterminado.
Parece que local-set-key
está configurando enlaces específicos para el modo mayor, no específicos para el búfer.
¿Cómo puedo tener enlaces que se activen solo en un búfer en particular?
Respuesta:
Para cerrar, aquí hay una respuesta que amplía mi comentario. Defino un modo menor con la combinación de teclas requerida y lo alterno en el búfer requerido usando variables locales de archivo.
(define-minor-mode my-org-buffer-local-mode
"Minor mode to simulate buffer local keybindings."
:init-value nil)
(define-key my-org-buffer-local-mode-map (kbd "<f10>") 'some-custom-defun-specific-to-this-buffer)
Puede alternarlo en los archivos necesarios configurando la sección de variables locales al final del archivo de la siguiente manera. También puede cambiar o agregar la combinación de teclas aquí. Aún necesitará definir diferentes modos menores para cada búfer que mapee la misma secuencia de teclas a diferentes comandos.
# Local Variables:
# my-org-buffer-local-mode: t
# eval:(define-key my-org-buffer-local-mode-map (kbd "<f10>") 'some-other-custom-defun-specific-to-this-buffer)
# End: