Conclusão da tabulação inteligente (para diretórios)?

7

Existem versões de shell que têm uma conclusão de tabulação mais inteligente?

Eu gostaria de poder digitar

cd foo-<TAB>

Em seguida, ele mostraria as possíveis conclusões junto com os números que eu posso digitar para selecionar um deles:

cd foo-<TAB>
(1) foo-bar1  (2) foo-bar2  (3) foo-bad

Então, depois de <TAB> eu digitaria 3 e isso me levaria a foo-bad . Como alternativa, usar as teclas de seta em vez de digitar o número seria ótimo.

    
por dehmann 04.08.2010 / 18:17

2 respostas

10

Você pode ativar menu-complete no Bash para percorrer as entradas na linha de comando toda vez que você pressionar Tab. Isso não é exatamente o que você está procurando. Se você quiser tentar, faça isso no prompt de comando:

bind '"\C-i": menu-complete'

Para persistir, adicione isso ao seu arquivo ~/.inputrc :

"\C-i": menu-complete

O Zsh tem um recurso que permite usar as teclas de seta para selecionar uma entrada. Adicione isto (ou outra variação) ao seu arquivo ~/.zshrc :

zstyle ':completion:*' menu select=0

Veja man zshcompsys e procure por "select=" (ele estará na seção para o menu "Estilo Padrão") para mais informações.

Caso contrário, no Bash, você poderia escrever uma função (ou até mesmo criar sua própria função de conclusão) que faria algo com base no comando select . Isso é extremamente simplista:

$ select a in x y z; do cd $a; done
1) x
2) y
3) z
#?

Você teria que fazer isso para conseguir fazer o que quiser.

    
por 04.08.2010 / 18:37
9

Você já usa a conclusão normal? tente

complete -d cd pushd rmdir

No seu shell e veja se está perto o suficiente do que você quer.

Você também pode tentar zsh, que tem melhor conclusão que o bash.

    
por 07.04.2011 / 04:11