¿Cómo preservar las combinaciones de teclas de emacs al cambiar la distribución del teclado?


7

Imagina que cambias la distribución de tu teclado. Tienes que pasar tiempo entrenando tus músculos para encontrar las teclas que deseas escribir, esto ya es bastante difícil.

Pero también tendrá que pasar tiempo entrenando sus músculos para encontrar las teclas que desea ingresar como parte de los accesos directos, lo cual es ridículo (por lo general, ha elegido estas teclas porque son fáciles de alcanzar, no por su letra *).

¿Hay alguna manera de que estas definiciones clave no se muevan cuando cambia la distribución del teclado?

Por ejemplo, si estoy en azerty y quiero aprender qwerty, me gustaría haber beginning-of-linereasignado de C-aa C-q, para que permanezca donde está en mi teclado (primera tecla a la derecha de TAB).

Según tengo entendido, se implementa parcialmente a través de métodos de entrada, pero toma la forma opuesta: cambia la forma en que emacs interpreta los caracteres de entrada para el texto. Pero no funcionará si desea cambiar la distribución de su teclado en todo el sistema, por ejemplo.

Entiendo que hay muchas maneras de definir las asociaciones de teclas, pero por ejemplo, consideraría aceptable una solución que se ocuparía de todas las asociaciones de teclas convertidas de cadenas humanas con la kbdfunción.


*. No es cierto para ciertas teclas que se usan con menos frecuencia. Por ejemplo, el C-cmapa de la mayoría de los modos principales usa nombres de teclas que son fáciles de recordar, en lugar de fáciles de alcanzar. Como pregunta adicional, sería bueno poder preservar (reasignar para que la tecla física no se mueva) algunas combinaciones de teclas y mover (no reasignar, la letra asociada a la tecla no cambia) algunas otras. El usuario puede seleccionar una opción u otra mediante el uso de dos funciones diferentes en lugar de kbdal definir sus combinaciones de teclas.


1
Si puede encontrar una solución que detecte una distribución de teclado particular desde Emacs, puede reasignar mediante programación basándose en esa detección. Hay una pregunta relacionada sin respuesta correcta, titulada Emacs que determina la distribución del teclado : stackoverflow.com/questions/7813648/…
lawlist

@lawlist No tenía en mente el escenario de "cambio frecuente", al menos no con la frecuencia suficiente como para que cambiar una opción en el archivo init cada vez que sucede no sea razonable. Seguro que la detección automática sería aún mejor, pero si tiene una solución que requiere que el usuario informe a emacs sobre sus mapas de teclas, me complacería aceptarlo.
T. Verron

@ T.Verron estoy bastante seguro de que la respuesta es que no puedes, con GNU emacs simples. Puede usar un paquete de combinación de teclas emacs que use la misma posición de acceso directo, independientemente de la distribución actual del teclado. (ergoemacs-mode hace eso, pero no es la clave predeterminada de GNU Emacs) Creo que también podría hacerlo el modo malvado. Básicamente, el paquete de combinación de teclas debe proporcionar una capa.
Xah Lee

Respuestas:


1

Hasta donde entiendo tu pregunta, key-translation-mapparece una buena idea para tu problema. Por ejemplo, si desea que C-qactúe C-acomo en su ejemplo, definiría lo siguiente:

  (define-key key-translation-map (kbd "C-q") (kbd "C-a"))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.