O TAB .inputrc não está se comportando conforme o esperado


11

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.

Respostas:


15

O Readline não sabe nada sobre um modificador chamado Shifte 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 cate 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 \esignifica um caractere de escape).

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

1
Ah, ^[Ztrabalhou para mim (BASH); Obrigado pela resposta detalhada! :)
user541686

Você pressiona Enter antes ou depois de 'gato'? Por que 'gato' é necessário? Parece que tenho as mesmas seqüências de escape sem 'gato'.
Dougkramer 5/11

@ douglas.kramer Running catevita 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.
Gilles 'SO- stop be evil'

Estou tendo problemas para que o Shift + Tab se ligue ao 'shell-expand-command'. Recebo: $ cat <Enter> <Shift+Tab>quais telas ^[[Z Sempre adiciono \eantes da sequência de onde recebo Ctrl+V? Isso se traduz em:"\e^[[Z": shell-expand-command
dougkramer 5/11

@dou Substitua ^[por `\ e`
Gilles 'SO- stop be evil'

4

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

Para o Shift+ Tabfuncionar, eu tive que usar:

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

Em ~/.bash_profileuso: bind TAB:menu-completee bind '"\e[Z": menu-complete-backward'(observe o uso de aspas simples e duplas!).
Erik
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.