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).