88 votes

L'autocomplétion du terminal ne fonctionne pas correctement

Si je commence à taper une commande comme apt-g après avoir frappé tab le Shell complète la commande pour apt-get mais pour la deuxième partie de la commande comme install si je saisis des caractères comme insta en frappant tab ne le complète pas pour install .

Autre exemple : après avoir saisi sudo en frappant tab ne complète rien. par exemple : sudo apt-ge [ tab ] et rien.

J'ai installé Ubuntu à l'aide d'un mini iso (installateur réseau de 40MB), donc peut-être y a-t-il une configuration que j'ai manquée !

J'ai ajouté ce code à mon .bashrc mais cela ne fonctionne toujours pas :

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

J'ai également vérifié l'autorisation de .bashrc et c'est -rw-r--r-- .

Je m'approvisionne également en .bashrc après des changements utilisant source .bashrc pour appliquer les changements au nouvel environnement mais toujours aucun effet.

J'utilise xfce4-terminal donc j'ai pensé que ça pouvait être le terminal et non le bash.

Mais l'édition :

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

Et changeant :

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

à :

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

Ça ne fait pas de différence non plus.

129voto

αғsнιη Points 33236

bash-completion est un ensemble de bash scripts qui permet la complétion personnalisée pour des commandes spécifiques.

Ce n'est pas seulement pour les fichiers et les répertoires, mais aussi, par exemple, pour les commandes. Ainsi, vous tapez une partie des commandes et en appuyant sur Tab nous obtenons une complétion automatique des commandes.

Installation

Étape 1 : Installer bash-completion

$ sudo apt-get install bash-completion

Et parfois, cela fonctionne si on le réinstalle avec la commande suivante :

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

Étape 2 : Activez la complétion bash dans votre .bashrc fichier

Ouvrez votre gedit ~/.bashrc et si ces contenus n'y existent pas, ajoutez-les à la fin et enregistrez le tout.

# 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

Important : Après avoir modifié le fichier, vous devez créer votre source ~/.bashrc con source ~/.bashrc ou rouvrir votre Terminal. Il devrait être réparé maintenant.

35voto

itsho Points 451

Si votre cas est un onglet de terminal qui ne fonctionne pas sous Xfce, la solution est la suivante :

  1. Ouvrir Menu d'application > Paramètres > Gestionnaire de fenêtres .
  2. Cliquez sur ' Clavier onglet ".
  3. Effacer le ' Changement de fenêtre pour la même application Le réglage de l'appareil.

Window Manager screenshot how to clear switch window for same application

J'ai trouvé la solution aquí .

5voto

Michael Lowden Points 51

Vous pouvez également être dans un Shell qui ne supporte pas l'auto complétion (ex : Bourne Shell | SH). Si vous voulez que BASH auto complete vous devez changer de shell, disons vers BASH (Bourne Again Shell) à la place avec la commande

chsh -s /bin/bash

Fuente: Ubuntu Wiki - Changer de shell

2voto

Sasino Points 1

Dans mon cas, j'essayais d'exécuter un script. ./myScript.sh et de taper ./my[tab] ne s'auto-complèterait pas.

J'ai dû ajouter des autorisations d'exécution au fichier et l'autocomplétion a fonctionné.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X