Sono su un rotolo oggi, ecco un'altra domanda:
Come mai quando li inserisco .inputrc, entrambi fanno la stessa cosa?
TAB: menu-complete
Shift-TAB: menu-complete-reverse
cioè fanno entrambi quello che dice l'ultimo.
Sono su un rotolo oggi, ecco un'altra domanda:
Come mai quando li inserisco .inputrc, entrambi fanno la stessa cosa?
TAB: menu-complete
Shift-TAB: menu-complete-reverse
cioè fanno entrambi quello che dice l'ultimo.
Risposte:
Readline non sa nulla di un modificatore chiamato Shifte ignora tranquillamente i nomi di modificatori sconosciuti. Prova wibble-TAB.
Per associare un'azione a Shift+ Tab, devi scoprire quale sequenza di escape invia il tuo terminale. In bash, esegui cate digita Ctrl+ Vquindi Shift+ Tab. Ciò inserirà letteralmente la sequenza di escape. È probabile che il primo personaggio sarà un personaggio di escape, mostrato come ^[; terminali diversi hanno sequenze di escape diverse, ma possibilità comuni sono ␛[Z(es. escape, parentesi sinistra, maiuscola) e ␛␉(es. escape, tab). Associa la chiave in modo appropriato ~/.inputrc(dove \esignifica un carattere di escape).
"\e\t": menu-complete-backward
"\e[Z": menu-complete-backward
catevita qualsiasi associazione bash. Di solito bash ha lo stesso legame Ctrl + V per inserire letteralmente il carattere successivo in modo che non faccia alcuna differenza.
$ cat <Enter> <Shift+Tab>quali display ^[[Z aggiungo sempre \eprima della sequenza che ottengo Ctrl+V? Questo si traduce in:"\e^[[Z": shell-expand-command
^[con `\ e`
Su Xubuntu 16.04, terminale: xfce4-terminal 0.6.3, shell: bash
Per far funzionare Shift+ Tabho dovuto usare:
bind '"\e[Z": menu-complete-backward'
~/.bash_profileuso: bind TAB:menu-completee bind '"\e[Z": menu-complete-backward'(notare l'uso di virgolette singole e doppie!).
^[Zlavorato per me (BASH); grazie per la risposta dettagliata! :)