asignaciones separadas para TAB y Ci en .inputrc

asignaciones separadas para TAB y Ci en .inputrc

Por lo que he probado, "TAB" y "Ci" en .inputrc parecen significar lo mismo, todo lo que vincule a uno está vinculado al otro. Sé que originalmente era lo mismo y que este comportamiento se hereda de los viejos tiempos, pero hoy en día, aparte de los emuladores de terminal, todas las aplicaciones X marcan la diferencia entre una prensa Ci y TAB.

Entonces, ¿hay alguna forma de ejecutar un comando de terminal ("completo", por ejemplo) cuando presiono la tecla TAB y ejecutar otro comando cuando presiono "Ci"?

(la misma pregunta se aplica a Cm y ENTER, Cz, Cd y todas estas secuencias de control que me gustaría enviar por otros medios además de su enlace original y aplicar mis propios comandos a estas preciosas combinaciones de teclas)

Y por cierto, si pudieras explicar un poco el proceso desde la pulsación de una tecla hasta la interpretación del shell, eso me ayudaría a entenderlo. Por ahora entendí que los eventos del teclado se traducen por Xmodmap, luego por .inputrc y que el resultado lo interpreta el shell o algo así.

Respuesta1

No existe una conexión directa entre xmodmapy .inputrc.

Existen varias formas, dependiendo del emulador de terminal, de modificar las claves enviadas a través del terminal. Algunos de ellos incluyen

  • modificando la configuración del teclado X (xkb)
  • modificar los códigos clave enviados para un evento determinado (xmodmapa)
  • cosas específicas del terminal, como el translationsrecurso utilizado por xterm.

Sin embargo, en una situación normal, control/Ienvía un tabcarácter porque así es como se configuraron casi todos los terminales.

Con xkb, puedes (en principio) cambiar lo que hace el teclado. A su vez, las aplicaciones X detectan eventos de pulsación y liberación de teclas y los traducen en símbolos de teclas. xevEs útil para mostrar eventos. Un emulador de terminal que se ejecuta en X obtiene la serie de eventos, que (usando llamadas a la biblioteca X) puede traducir en caracteres. A tabes sólo otro personaje en ese caso.

xmodmapEl papel de en ese proceso sería un cambio ad hoc en la configuración del teclado X.

Si está utilizando xterm, el translationsrecurso ofrece mucha capacidad de configuración. Esa es una característica de laKit de herramientas X, que le permite asociar varias combinaciones de teclas con las acciones integradas de xterm. Las combinaciones de teclas predeterminadas se enumeran en lamanual. Puede anular o agregar esos enlaces. Hay varios lugares donde puede configurar la información ( $HOME/.Xdefaultspor ejemplo, aunque puede abarrotarse fácilmente). Por ejemplo, puse elXAPPLRESDIRvariable de entorno para apuntar a mi directorio de usuario que contiene archivos personalizados de valores predeterminados de aplicaciones. En uno nombrado XTerm, podría poner esto para cambiar el resultado de ctrl/I:

*VT100*translations:    #override \n\ 
    Ctrl ~Shift<Key>I:string("??")

Debido a que la tabclave tiene su propio símbolo de clave especial, esta traducción no la afecta.

información relacionada