.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.

usuario541686
fuente

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