Como faço para que a conclusão do zsh funcione mais como a conclusão do bash?


17

Sou um convertido recente do bash para o zsh (com o qual estou usando "oh my zsh"), mas uma coisa me incomoda:

Quando eu pressiono a tecla tab, o primeiro preenchimento automático é preenchido automaticamente e você precisa percorrer as conclusões pressionando a tecla repetidamente.

Isso difere do bash, onde você apenas mostra uma lista das conclusões. Se todas as conclusões tiverem o mesmo prefixo, esse prefixo será preenchido. Você pode selecionar o que deseja, continuando a digitar.

Acho o último preferível, pois é mais rápido digitar do que selecionar uma conclusão pressionando a guia repetidamente.

Existe alguma maneira de fazer a conclusão do zsh agir mais como o bash nesse aspecto?

Respostas:


18
setopt noautomenu
setopt nomenucomplete

Você precisa dos dois. Se você clicar na guia vezes suficientes, você obterá a lista de conclusões, mas nunca adicionará nenhum caractere ao que você digitou até agora.


3

Eu não acho que esse seja o comportamento padrão, mas você pode desativá-lo usando:

setopt +o menucomplete

Outras configurações que afetam este comportamento de diferentes maneiras incluem: autolist, automenu, bashautolist, listambiguous. Consulte a seção "Conclusão" man zshoptionspara obter detalhes. Você pode adicionar este comando ao seu ~/.zshrcarquivo.

Você pode configurar muitas outras coisas interativamente, fazendo:

autoload -U compinstall
compinstall

e seguindo as instruções e menus.

Em Bash, este comportamento é controlado por ligação Taba completeou menu-completeem ~/.inputrc:

"\C-i": complete   # do list completion

ou de um prompt de shell ou em ~/.bashrc:

bind '"\C-i": menu-complete' # do menu completion

1
meta comentário: como você conseguiu o caractere "tab" com essa aparência?
Boa Pessoa

2
@ Good Person:<kbd>Tab</kbd>
Pausado até novo aviso.
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.