A conclusão do bash do terminal do Mac OSX não funciona

0

Eu apenas segui as instruções @ esta pergunta para obter o preenchimento automático do git no terminal. Aqui estão as etapas que eu executei:

  • port install bash-completion
  • Adicionado

     if [ -f /opt/local/etc/bash_completion ]; then
       . /opt/local/etc/bash_completion
       echo "bash completion loaded"
     fi

    ao meu ~ / .profile

  • port update git-core +svn +bash_completion +doc

Então reiniciei o terminal, ele me mostrou "bash conclusão carregada", portanto, obviamente, o arquivo existe, mas a conclusão de tabulação ainda funciona apenas em arquivos. Nada mágico acontece depois de digitar gite depois clicar na guia.

Examinei /opt/local/etc/bash_completion.d/e dá-me 149 arquivos incluindo git, java, man, port. Tentei digitar esses comandos e, em seguida, clicar na guia, mas nada funcionou lá também.

Alguém tem uma idéia do que eu fiz de errado? Talvez eu tenha estragado uma variável de ambiente ou algo assim. Alguém que possua a instalação do bash-complete pode me dizer um comando onde ele deve funcionar, como port upe clicar em tab -> port upgrade. Obrigado ;-)


Editar:

Encontrei outro link que descreve minha abordagem: Como fazer com que o git-complete.bash funcione no Mac OS X?

sebastiangeiger
fonte
Atualização sobre isso dois anos depois: Utilizada zshhá mais de um ano, não poderia estar mais feliz.
sebastiangeiger

Respostas:

2

O MacPorts já interrompe sua conclusão do bash há um tempo. Sugiro tentar o Fink ou o HomeBrew .

rindobovino
fonte
1

Eu acho que a maneira mais fácil é mudar para o zsh. Há alguma configuração que precisa ser feita, mas é isso.

Adicionei isso ao meu arquivo ~ / .zshenv


#******************************************************************************************
# From http://zshwiki.org/home/examples/compquickstart
zmodload zsh/complist
autoload -U compinit && compinit

_force_rehash() {
 (( CURRENT == 1 )) && rehash
 return 1   # Because we didn't really complete anything
}
zstyle ':completion:::::' completer _force_rehash _complete _approximate
zstyle -e ':completion:*:approximate:*' max-errors 'reply=( $(( ($#PREFIX + $#SUFFIX) / 3 )) )'
zstyle ':completion:*:descriptions' format "- %d -"
zstyle ':completion:*:corrections' format "- %d - (errors %e})"
zstyle ':completion:*:default' list-prompt '%S%M matches%s'
zstyle ':completion:*' group-name ''
zstyle ':completion:*:manuals' separate-sections true
zstyle ':completion:*:manuals.(^1*)' insert-sections true
zstyle ':completion:*' menu select
zstyle ':completion:*' verbose yes
Mark Thalman
fonte
2
O zsh é legal, mas o iniciador de threads perguntou sobre o bash.
Yanokwa
Percebo que a pergunta original era sobre bash, mas joguei isso fora como uma maneira mais rápida de alcançar seu objetivo final sem precisar instalar nada. Embora o zsh não seja totalmente compatível com o bash, as modificações necessárias para converter .bashrc em .zshrc são geralmente bem menores.
Mark Thalman
1
hmm ... eu posso ver as vantagens que o zsh obviamente tem. Embora eu aprecie seus esforços, minha intenção de postar essa pergunta foi mais para entender o que fiz de errado. Fazê-lo funcionar é apenas secundário, seria bom tê-lo, mas eu realmente não dependo disso.
sebastiangeiger
0

Consegui fazer a conclusão do Bash em funcionamento via Fink.

fink install bash-completion

Após o fornecimento do Fink, o preenchimento de guias funciona para o Bash. Isso inclui comandos Git, como você descreveu acima.

Dan
fonte
0

Para mim tmux, funcionou, mas na planície iTerm2 não. A solução foi definir o comando /opt/local/bin/bash -lpara o meu perfil iTerm2 usado. Encontrei a solução em https://trac.macports.org/wiki/howto/bash-completion

michalzuber
fonte