Estou em um rolo hoje, aqui está outra pergunta:
Como é que, quando eu as coloco .inputrc
, as duas fazem a mesma coisa?
TAB: menu-complete
Shift-TAB: menu-complete-reverse
ou seja, ambos fazem o que o último diz.
O Readline não sabe nada sobre um modificador chamado Shift
e ignora silenciosamente nomes desconhecidos de modificadores. Tente wibble-TAB
.
Para vincular uma ação ao Shift+ Tab, você precisa descobrir qual sequência de escape o seu terminal envia. No bash, execute cat
e digite Ctrl+ Ve Shift+ Tab. Isto irá inserir a sequência de escape literalmente. É provável que o primeiro caractere seja um caractere de escape, mostrado como ^[
; terminais diferentes têm seqüências de escape diferentes, mas as possibilidades comuns são ␛[Z
(ou seja, escape, colchete esquerdo, maiúscula Z) e ␛␉
(ou seja, escape, guia). Ligue a chave adequadamente em ~/.inputrc
(onde \e
significa um caractere de escape).
"\e\t": menu-complete-backward
"\e[Z": menu-complete-backward
^[Z
trabalhou para mim (BASH); Obrigado pela resposta detalhada! :)cat
evita qualquer ligação ao bash. Normalmente, o bash tem a mesma ligação Ctrl + V para inserir literalmente o próximo caractere, para que não faça diferença.$ cat <Enter> <Shift+Tab>
quais telas^[[Z
Sempre adiciono\e
antes da sequência de onde receboCtrl+V
? Isso se traduz em:"\e^[[Z": shell-expand-command
^[
por `\ e`No Xubuntu 16.04, terminal: xfce4-terminal 0.6.3, shell: bash
Para o Shift+ Tabfuncionar, eu tive que usar:
fonte
~/.bash_profile
uso:bind TAB:menu-complete
ebind '"\e[Z": menu-complete-backward'
(observe o uso de aspas simples e duplas!).