autoload -U +X compinit && compinit
autoload -U +X bashcompinit && bashcompinit
source /path/to/your/bash_completion_script
zsh 5.0.2 (x86_64-apple-darwin13.0)
J'exécute zsh sans aucun ~ / .zshrc et la séquence ci-dessus a fonctionné dans un shell zsh fraîchement généré.
Merci au script git-completion.bash pour l'indice: D
Lisez la suite pour plus de détails sur les 3 lignes ci-dessus:
Bash impressionnant à l' appui construit auto complétion , mais les scripts bash autocomplete ne zsh directement fonctionne pas comme environnement zsh ne pas les fonctions d'aide bash essentielle autocomplete aiment compgen
, complete
. Il le fait dans un effort pour garder la session zsh rapide.
Ces jours-ci, zsh est livré avec des scripts de complétion appropriés comme compinit
et bashcompinit
qui ont les fonctions requises pour prendre en charge les scripts de saisie semi-automatique bash.
autoload <func_name>
: Notez que le chargement automatique est défini dans zsh et non dans bash. autoload
recherche un fichier nommé dans les chemins de répertoire renvoyés par la fpath
commande et marque une fonction pour la charger lors de son premier appel.
- -U: ignore les alias lors du chargement d'une fonction comme compinit ou bashcompinit
- + X: il suffit de charger la fonction nommée maintenant et de ne pas l'exécuter
Par exemple sur mon système echo $fpath
renvoie /usr/share/zsh/site-functions
et /usr/share/zsh/5.0.5/functions
et les deuxcompinit
et bashcompinit
sont disponibles sur /usr/share/zsh/5.0.5/functions
.
De plus, pour la plupart des gens, ce n'est peut-être autoload -U +X bashcompinit && bashcompinit
nécessaire que parce qu'un autre script comme git autocomplete ou le leur ~/.zshrc
peut le faire autoload -U +X compinit && compinit
, mais il est prudent de les exécuter tous les deux.