Terminaison de l'onglet terminal [dupliquer]


15

Duplicata possible:
complétion de Bash pour les commandes sous Mac OS

Je viens de passer de linux à mac, et l'un des problèmes que j'ai est que la complétion des onglets n'est qu'à un niveau, et je ne sais pas comment corriger cela.

Laissez-moi vous expliquer par exemple - quand j'ai utilisé git sur ubuntu, je vais commencer à taper

$ git

et appuyez sur tab, et le shell terminerait la commande ou afficherait les options disponibles pour la lettre que j'ai tapée. C'est aussi ce qui se passe sur mon mac (1 niveau). Cependant, quand je continuerais à taper la partie suivante de la commande

$ git commit

et appuyez sur tab, le terminal mac ne terminerait pas la sous-commande suivante (pour git) comme il le ferait sous Linux. Il en va de même pour les autres programmes qui prennent en charge cette exécution de commande à plusieurs niveaux. Je soupçonne que cela pourrait être un problème de bibliothèque readline, mais je ne sais pas lequel je dois installer.


Ce n'est pas un problème de ligne de lecture (en fait, ce n'est pas un "problème"), c'est parce qu'Ubuntu tient la main avec des packages personnalisés pour bash.
Jed Smith

Il s'agit certainement d'un problème de configuration bash (puisque j'obtiens ce comportement sur mac + beaucoup plus pour lequel je l'ai configuré, comme la complétion du nom d'hôte) Vous devriez chercher des scripts d'alimentation pour bash et les ajouter à votre profil.
Shane C. Mason,

Réponses:


13

Téléchargez bash_completion et sourcez -le depuis votre .bashrc. Ensuite, mettez contrib/completion/git-completion.bashde la distribution git dans bash_completion.d.

Vous pouvez également l'installer via MacPorts .


merci, cela a fonctionné. J'ai ajouté ce qui suit dans mon .bashrc if [-f / opt / local / etc / bash_completion]; puis source / opt / local / etc / bash_completion fi
sa125

1
Encore mieux, installez-le via homebrew: brew install bash-complétion
abyx

@abyx: choisir le "meilleur" entre homebrew et macports est une chose très subjective

2

Pour git, une option est disponible lors de la compilation pour prendre en charge l'achèvement.

Si vous avez utilisé le port pour installer Git (ce que je recommande), vous pouvez réinstaller git avec cette commande

sudo port install git-core +svn+bash_completion+doc

Qui installera git avec l'achèvement de bash, le support git-svn et les documents

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.