bash-completion ajoute la complétion pour:
- Noms de commande après
sudo
etwhich
- Noms des packages Macports et Homebrew (facultatif)
- Noms d'hôtes dans
known_hosts
des commandes telles quessh
- Dossiers sur
CDPATH
Etc. Vous pouvez imprimer une liste de commandes d'achèvement avec complete -p
et voir la source d'une fonction avec declare -f
.
Installer Homebrew ou MacPorts et Bash
Tout d'abord, vous devez installer Homebrew ou MacPorts conformément aux instructions. Remarque: N'installez pas les deux, car ils sont en conflit.
Ensuite, installez une version plus récente de Bash. Le Bash intégré à OS X est un peu ancien, et vous aurez plus d'options de complétion avec Bash> 4.1, que vous pourrez utiliser
brew install bash
ou
sudo port install bash
selon que vous utilisiez Homebrew ou MacPorts.
Installation de bash-completion avec Homebrew
Pour installer bash-completion
, vous devez:
brew install bash-completion
Et ajoutez ce qui suit à votre ~/.bash_profile
:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Homebrew installe actuellement une version plus ancienne de bash-completion (1.3) qui fonctionne toujours avec Bash 3.x, mais il est néanmoins recommandé d’utiliser Bash 4.x.
Installation de bash-completion avec MacPorts
Avec MacPorts:
sudo port install bash-completion
Ensuite, ajoutez à votre ~/.bash_profile
:
if [ -f /opt/local/etc/profile.d/bash_completion.sh ]; then
. /opt/local/etc/profile.d/bash_completion.sh
fi
Voir trac.macports.org/wiki/howto/bash-completion pour des instructions sur l'activation de l'achèvement pour les noms de port.
bash-completion
package MacPorts permet de compléter les noms de package sous la forme d'arguments supplémentaires aprèsport <verb>
. Voir ici les lignes 48 à 58. Ce comportement est évoqué dans le wiki MacPorts , qui indique: " Il ne s'agit pas uniquement des fichiers et des répertoires, mais également, par exemple, des commandes deport
. Vous saisissezport <Tab>
et obtenez une liste de toutes les commandes possibles ", bien qu'il ne mentionne explicitement que l'achèvement des verbes (ce qui est beaucoup plus simple).variants.conf
n'est pas à compléter pour MacPorts lui-même; variants.conf définit les variantes à définir automatiquement pour tous les ports, comme expliqué sur la page du wiki que vous avez liée. L'ajout de cette ligne active la prise en charge de l'achèvement de bash lorsque cela est possible pour les ports que vous installez.make
auto-complétion, juste ce que je voulais.