key-bindings – Vinculaciones de teclas específicas de un búfer

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:

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım