zsh equivalente a bash show-all-if-ambiguous?

8

No bash, se você pressionar a tecla tab quando houver várias conclusões possíveis, obterá uma lista de correspondências que serão reimpressas se você pressionar a tecla repetidamente. No tcsh, definir o preenchimento automático para aprimorado também alcança isso.

No zsh, você obtém a lista de correspondências, mas, na 2ª, 3ª guia, pressiona, começa a alternar entre as correspondências. Existe uma maneira de fazer com que o zsh faça o equivalente ao show all-if-ambiguous do bash sem o ciclismo?

Não estou procurando o inteligente, mas inútil "por que você pressionaria a tecla tab várias vezes, se exibida depois da primeira?". Se eu fosse capaz de ajustar meus hábitos, já o teria feito.

Sridhar Sarnobat
fonte

Respostas:

5

O Zsh tem muitas opções relacionadas à conclusão (veja man zshoptionsabaixo Completion). Acho que você está atrás setopt no_auto_menue talvez setopt bash_auto_listtambém.

Gilles 'SO- parar de ser mau'
fonte
Desculpe, eu fiz minha pergunta mal. Quero saber como desativar o ciclo de conclusão da guia. Eu acho que vou começar uma nova pergunta.
3
@ user714112: setopt no_auto_menudesativa o ciclo de conclusão de guias: se você pressionar Tabe o prefixo atual for ambíguo, verá um menu e pronto , a linha de comando não será alterada.
Gilles 'SO- stop be evil'
Obrigado, você está certo. Não sei por que não vi isso antes. É possível fazê-lo reexibir a lista no 2º, 3º e 4º TAB, em vez de nada? O instinto humano é pensar que o teclado não está funcionando se nada acontecer no pressionamento da tecla 2ª, 3ª e 4ª guia.
Sridhar Sarnobat
@ user7000: Novamente, ele exibe novamente a lista cada vez que você pressiona Tab. Se eu limpar a tela no menu do emulador de terminal ou criar um arquivo, pressione Tabnovamente, zsh exibe novamente a lista e mostra o novo arquivo. (Acabei de testar com o zsh 4.3.4 e não acho que o comportamento tenha mudado há muito tempo.)
Gilles 'pára de ser mau'
1
Eu finalmente consegui a solução. Eu precisava das duas opções, além de remover ALWAYS_LAST_PROMPT. Então, isso me dá o comportamento esquivo que eu queria: setopt bash_auto_list; setopt no_auto_menu; desarranjo ALWAYS_LAST_PROMPT; Mais uma vez, obrigado por me ajudar com isso. Eu aprecio sua persistência
Sridhar Sarnobat