web-dev-qa-db-fra.com

La complétion automatique du terminal ne fonctionne pas correctement

Si je commence à taper une commande comme apt-g après avoir appuyé sur tab, le Shell termine la commande en apt-get, mais pour la deuxième partie de la commande, telle que installname__, si j’entre certains caractères comme instaname__, cliquez sur tab, ne le complète pas à installname__.

Autre exemple: après avoir entré Sudofrapper tab ne complète rien. par exemple: Sudo apt-ge [tab] et rien.

J'ai installé Ubuntu en utilisant une mini-iso (installateur de réseau de 40 Mo), alors il y a peut-être une config 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 source également le .bashrc après des modifications en utilisant source .bashrc pour appliquer les modifications au nouvel environnement, mais toujours aucun effet.

J'utilise xfce4-terminal alors j'ai pensé qu'il pourrait s'agir du terminal et non du bash.

Mais montage:

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

Et en changeant:

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

à:

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

Cela ne fait aucune différence aussi.

49
Ravexina

bash-completion est un ensemble de scripts bash qui permet l'exécution 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. Donc, vous tapez partiel de 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 nous le réinstallons avec la commande suivante:

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

Étape 2: Activer bash-completion dans votre fichier .bashrc

Ouvrez votre gedit ~/.bashrc et si ce contenu n’y existe pas, ajoutez-le à la fin et sauvegardez-le.

# 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 les modifications, vous devez attribuer votre ~/.bashrc avec source ~/.bashrc ou rouvrir votre terminal. Il devrait être résolu maintenant.

77
αғsнιη

Si votre cas est un onglet de terminal ne fonctionnant pas sous Xfce,

La solution est la suivante:

  1. Ouvrez Application Menu> Settings> Window Manager.
  2. Cliquez sur l'onglet Keyboard.
  3. Effacez le paramètre Switch window for same application.

Window Manager screenshot how to clear switch window for same application

J'ai trouvé la solution Ici

24
itsho

Vous pouvez également être dans un shell qui ne prend pas en charge la saisie automatique (ex: Bourne Shell | SH). Si vous voulez l'auto-complétion BASH, vous devez changer de coque, dites plutôt à BASH (Bourne Again Shell) avec la commande

chsh -s /bin/bash

Source: buntu Wiki - Changer de coquille

3
Michael Lowden

Dans mon cas, j'essayais d'exécuter un script ./myScript.sh et taper ./my[tab] ne se complétait pas automatiquement.

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

0
Hezi