¿Es posible establecer enlaces de teclas específicos 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 de modo org. Si abro un archivo con un modo principal diferente, entonces se inicia mi enlace de teclas predeterminado.
Parece que local-set-key
está estableciendo enlaces específicos para el modo mayor no específicos para el búfer.
¿Cómo puedo tener enlaces que se activan solo en un búfer en particular?
key-bindings
keymap
file-local-variables
Kaushal Modi
fuente
fuente
local-unset-key
enganchadoorg-mode-hook
podría funcionar si se ejecuta antes de laLocal Variables:
sección.Local Variables:
Respuestas:
Para el cierre, 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.
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 asigne la misma secuencia de teclas a diferentes comandos.
fuente
eval-buffer: Symbol's value as variable is void: my-org-buffer-local-mode-map
cuando intento ejecutar esto(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)
:keymap
palabra clave, consulte nullprogram.com/blog/2013/02/06Aquí hay una forma genérica de establecer enlaces de teclas específicos del búfer.
temp-mode.el
yrequire
en suinit.el
.temp-mode
modo menor y defina el mapa de teclas de ese modo menor solo en el búfer (s) que necesita.Coloque el
Local Variables
fragmento a continuación en el búfer donde desea el enlace de clave personalizado. Debajo hay ejemplos deorg-mode
archivos.En buffer ONE
Si algún otro búfer redefine la misma combinación de teclas usando,
En el buffer DOS
entonces el nuevo enlace se hace efectivo al hacerlo
M-x revert-buffer
.Esto es lo que haría si necesito cambiar entre estos dos buffers con mucha frecuencia y si tengo que usar el F10enlace en ambos:
C-x C-s
(guardar) y cambiar al búfer DOSrevert-buffer
(actualizar enlaces), trabajar en el búfer DOSC-x C-s
y cambiar al búfer UNOrevert-buffer
(actualizar enlaces), trabajar en el buffer UNOC-x C-s
y cambiar al buffer DOSPero prefiero vincular los diferentes comandos específicos del búfer a diferentes teclas.
Modo menor temporal
fuente