O preenchimento automático de terminal não funciona corretamente

37

Se eu começar a digitar um comando como apt-g após acessar a guia , o shell completará o comando para apt-get , mas para a segunda parte do comando como install , se eu inserir alguns caracteres como insta , acessando a aba , não a completam em install .

Outro exemplo: depois que eu inserir sudo hit , a aba não completa nada. por exemplo: sudo apt-ge [ tab ] e nada.

Eu instalei o Ubuntu usando o mini iso (instalador de rede de 40MB), então talvez haja uma configuração que eu perdi!

Adicionei este código ao meu .bashrc , mas ele ainda não funciona:

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

Também verifiquei a permissão de .bashrc e é -rw-r--r-- .

Eu também fonte o .bashrc após as alterações usando source .bashrc para aplicar as alterações para o novo ambiente, mas ainda sem efeitos.

Eu uso xfce4-terminal , então achei que poderia ser o terminal e não o bash.

Mas editando:

~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

E mudando:

<property name="&lt;Super&gt;Tab" type="string" value="switch_window_key"/>

para:

<property name="&lt;Super&gt;Tab" type="string" value="empty"/>

Não faz qualquer diferença também.

    
por Ravexina 04.11.2014 / 12:49

3 respostas

62

bash-completion é um conjunto de scripts bash que permite a conclusão personalizada de comandos específicos.

Isso não é apenas para arquivos e diretórios, mas também, e. para os comandos. Então, você digita parcial de comandos e, ao acessar a Tab , obtemos uma conclusão automática dos comandos.

Instalação

Etapa 1: instalação do bash-completion

$ sudo apt-get install bash-completion

E algumas vezes funciona se o reinstalarmos pelo seguinte comando:

$ sudo apt-get install --reinstall bash-completion

Etapa 2: ative a conclusão do bash no seu arquivo .bashrc

Abra seu gedit ~/.bashrc e, se esse conteúdo não existir, adicione-o no final e salve-o.

# enable bash completion in interactive shells
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

Importante: Após as alterações, você precisa originar seu ~/.bashrc com source ~/.bashrc ou reabrir seu Terminal. Deve ser consertar agora.

    
por devWeek 04.11.2014 / 14:56
22

Se o seu caso não for o separador de terminal a funcionar em Xfce ,

A solução é a seguinte:

  1. Abra Application Menu > Settings > Window Manager .
  2. Clique na guia Keyboard .
  3. Limpe a configuração Switch window for same application .

Encontreiasolução aqui

    
por itsho 03.11.2016 / 10:30
2

Você também pode estar em um shell que não suporta o preenchimento automático (ex: Bourne Shell | SH). Se você quer BASH auto complete, você precisa trocar shells, por exemplo, para BASH (Bourne Again SHell) com o comando

chsh -s /bin/bash

Fonte: Wiki do Ubuntu - Mudando de Conchas

    
por Michael Lowden 18.11.2016 / 16:03