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.
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
^[Ztrabajó para mí (BASH); ¡gracias por la respuesta detallada! :)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.$ cat <Enter> <Shift+Tab>qué pantallas^[[Zagrego siempre\eantes de la secuencia que obtengoCtrl+V? ¿Esto se traduce en:"\e^[[Z": shell-expand-command^[por `\ e`En Xubuntu 16.04, terminal: xfce4-terminal 0.6.3, shell: bash
Para que Shift+ Tabfuncione, tuve que usar:
fuente
~/.bash_profileuso:bind TAB:menu-completeybind '"\e[Z": menu-complete-backward'(¡tenga en cuenta el uso de comillas simples y dobles!).