Conclusão de bash para comandos no Mac OS X

35

Como faço para que fink e macports completem automaticamente os nomes dos programas ao digitar comandos, como no apt-get ?

do Ubuntu?

Por exemplo, quando digito

sudo port install ca

e pressione a aba , eu quero que o terminal complete automaticamente ou mostre os comandos disponíveis.

O OS X nem sequer conclui automaticamente os comandos depois de sudo !

    
por Osama Gamal 25.05.2011 / 16:33

1 resposta

68

conclusão do bash adiciona conclusão para:

  • Nomes de comando após sudo e which
  • Macports e nomes de pacotes Homebrew (opcional)
  • Hostnames em known_hosts para comandos como ssh
  • Pastas em CDPATH

E assim por diante. Você pode imprimir uma lista de comandos de conclusão com complete -p e ver a origem de uma função com declare -f .

Instalando Homebrew ou MacPorts e Bash

Primeiro, você precisa instalar o Homebrew ou MacPorts de acordo com as instruções. Observação: não instale os dois, pois eles estão em conflito.

Em seguida, instale uma versão mais recente do Bash. O Bash integrado no OS X é um pouco antigo e você terá mais opções de conclusão com o Bash > 4.1, que você pode passar por

brew install bash

ou

sudo port install bash

dependendo se você usa Homebrew ou MacPorts.

Instalando o bash-completion com o Homebrew

Para instalar o bash-completion , você precisa:

brew install bash-completion

Adicione o seguinte ao seu ~/.bash_profile :

if [ -f $(brew --prefix)/etc/bash_completion ]; then
  . $(brew --prefix)/etc/bash_completion
fi

O Homebrew atualmente instala uma versão mais antiga do bash-completion (1.3) que ainda funciona com o Bash 3.x, mas ainda assim, é recomendado usar o Bash 4.x.

Instalando o bash-completion com o MacPorts

Com MacPorts:

sudo port install bash-completion

Em seguida, adicione ao seu ~/.bash_profile :

if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
  . /opt/local/etc/profile.d/bash_completion.sh
fi

Veja trac.macports.org/wiki/howto/bash-completion para obter instruções sobre como permitir conclusão para nomes de portas.

    
por 25.05.2011 / 18:03