.inputrc TAB no se comporta como se esperaba


11

Hoy estoy en una buena racha, aquí hay otra pregunta:

¿Cómo es que cuando pongo esto .inputrc, ambos hacen lo mismo?

TAB: menu-complete
Shift-TAB: menu-complete-reverse

es decir, ambos hacen lo que dice el último.

Respuestas:


15

Readline no sabe nada acerca de un modificador llamado Shift, e ignora silenciosamente los nombres de modificadores desconocidos. Tratar wibble-TAB.

Para vincular una acción a Shift+ Tab, debe averiguar qué secuencia de escape envía su terminal. En bash, ejecuta caty escribe Ctrl+ Vluego Shift+ Tab. Esto insertará la secuencia de escape literalmente. Es probable que el primer personaje sea un personaje de escape, que se muestra como ^[; diferentes terminales tienen diferentes secuencias de escape, pero las posibilidades comunes son ␛[Z(es decir, escape, corchete izquierdo, Z mayúscula) y ␛␉(es decir, escape, tabulación). Ate la clave adecuadamente en ~/.inputrc(donde \esignifica un carácter de escape).

"\e\t": menu-complete-backward
"\e[Z": menu-complete-backward

1
Ah, ^[Ztrabajó para mí (BASH); ¡gracias por la respuesta detallada! :)
user541686

¿Presiona Enter antes o después de 'cat'? ¿Por qué se necesita 'gato'? Parece que obtengo las mismas secuencias de escape sin 'gato'.
dougkramer el

@ douglas.kramer Running catevita cualquier enlace de bash. Por lo general, bash tiene el mismo enlace Ctrl + V para insertar el siguiente carácter literalmente, por lo que no hace la diferencia.
Gilles 'SO- deja de ser malvado'

Tengo problemas para hacer que Shift + Tab se una a 'shell-expand-command'. Obtengo: ¿ $ cat <Enter> <Shift+Tab>qué pantallas ^[[Z agrego siempre \eantes de la secuencia que obtengo Ctrl+V? ¿Esto se traduce en:"\e^[[Z": shell-expand-command
dougkramer

@dou Reemplazar ^[por `\ e`
Gilles 'SO- deja de ser malvado'

4

En Xubuntu 16.04, terminal: xfce4-terminal 0.6.3, shell: bash

Para que Shift+ Tabfuncione, tuve que usar:

bind '"\e[Z": menu-complete-backward'

En ~/.bash_profileuso: bind TAB:menu-completey bind '"\e[Z": menu-complete-backward'(¡tenga en cuenta el uso de comillas simples y dobles!).
Erik
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.