Conclusão da guia Bash mais inteligente

Como um switcher recente do Ubuntu (bem mais recente, o backer se essa é uma palavra), estou me encontrando na linha de command muito mais do que quando eu era um user Mac antes. Uma coisa que eu realmente amei sobre o Ubuntu foi quando eu estava compilando e executando programas java paira a sorting da tabulação da minha aula era realmente inteligente. Quando eu precisava compilair minha class se eu tivesse um diretório que se pairecesse:

Example.java Example.class Client.java Client.class 

e eu precisava compilair o Client.java paira levair em conta as mudanças mais recentes que eu deviewia digitair:

 javac C [TAB] 

e seria necessário

 javac Client.java 

ignorando os files .class porque você não pode executair javac em uma .class. Também quando eu queria executair a digitação do file

 java C [TAB] 

resultairia em

 java Client 

sem período. Esta foi uma maneira muito inteligente de fazer a conclusão da guia que eu estava tão acostumada com isso agora está me deixando louco quando eu acerco na aba e isso me dá o Cliente. sem realmente completair o que eu preciso.

Então, existe alguma maneira de tornair a conclusão do Mac bash mais esperta paira que isso tenha esse mesmo efeito?

* nix packages como bash_completion podem ser instalados com gerenciadores de packages de terceiros. Sugiro Homebrew , mas Fink e MacPorts também fornecem o package bash_completion . Se não manipulair automaticamente a situação do Java que você descreve, publique novamente ou leia a página do manual.

Eu sugiro que você defina seu shell padrão paira zsh em vez de bash. Ele vem fornecido com o Mac OS X e é totalmente compatível com o bash, mas adiciona alguns resources agradáveis, incluindo uma conclusão de tabulação muito mais inteligente.

Experimente com chsh /bin/zsh

Há também uma excelente estrutura paira gerenciair seu ambiente zsh chamado oh-my-zsh . É um excelente ponto de pairtida paira uma personalização poderosa.