Comportamento de autocompletar do Bash no Debian 8

0

Em uma nova instalação do Debian 8 (Jessie), descobri que o autocompletar no bash, usando a chave tab , mudou.

O teste que fiz foi:

  1. Abra um terminal (no meu caso, Konsole ). Acima do prompt, mostra
    ~ ~
    ~ ~ ~
    ~ ~ ~ ~
    ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~
    ~ ~ ~ ~ ~ ~ ~ ~ ~ e ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
  2. mkdir -p /tmp/test # criar diretório de teste
  3. cd /tmp/test # vai para o diretório vazio
  4. ls <tab> <tab> <tab> <tab>
    /tmp/test /tmp/test ~ ~ ~ ~ ~ ~ ~ ~ ~ # depois de 1 tab
    /tmp/test /tmp/test /tmp/test ~ ~ ~ ~ ~ ~ ~ ~ ~ # depois de 2 tab s
    /tmp/test /tmp/test /tmp/test /tmp/test ~ ~ ~ ~ ~ ~ ~ ~ ~ # depois de 3 tab s
    /tmp/test /tmp/test /tmp/test /tmp/test /tmp/test ~ ~ ~ ~ ~ ~ ~ ~ ~ # depois de 4 tab s

Ele costumava mostrar apenas os arquivos no diretório (se houver). Alguém sabe o que causa isso? Algo em .bashrc ? Prazer em enviar mais arquivos se isso ajudar!

    
por alle_meije 04.02.2016 / 11:14

1 resposta

1

Encontrou a resposta para este enigma em 2 passos. Em primeiro lugar, meu antigo .bash_aliases usava alias [='pushd .' e alias ]='popd' . Remover essas linhas resolveu o comportamento estranho acima, mas eu perdi meus apelidos.

Mas se eu mantiver esses aliases e colocar a linha

if [[ -f ~/.bash_aliases ]]; then
   . ~/.bash_aliases
fi

em .bashrc depois da linha

if ! shopt -oq posix; then
   if [[ -f /usr/share/bash-completion/bash_completion ]]; then
      . /usr/share/bash-completion/bash_completion
   elif [[ -f /etc/bash_completion ]]; then
      . /etc/bash_completion
   fi
fi

então, posso manter meus [ e ] aliases e têm autocompletar normal. Então parece que os aliases interferiram na configuração de autocompletar de Jessie no Bash. A única razão pela qual a chamada de .bash_aliases era antes da chamada dos scripts de autocompletar originalmente era que no modelo .bashrc fornecido com a instalação eles estavam nessa ordem.

    
por 05.02.2016 / 09:52