J'ai git
et git-flow
installé via Homebrew. Je suis sur un Mac.
j'ai zsh 5.0.2 (x86_64-apple-darwin12.4.0)
git
les finitions fonctionnent. git-flow
les finitions ne le sont pas.
Je ne peux pas obtenir de git flow
finitions au travail.
J'ai essayé deux manières d'installer les fonctions.
Méthode 1
J'ai installé git-flow
avec Homebrew, qui a ajouté les fonctions à ce répertoire/usr/local/share/zsh/site-functions
Ce chemin est dans mon $fpath
> echo $fpath
/usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.2/share/zsh/functions
Méthode 2
J'ai téléchargé les git-flow
fonctions d'achèvement à partir de https://github.com/zsh-users/zsh-completions et ai mis le fichier dans ~/.zsh/completions
.
J'ai ensuite ajouté le répertoire à mon ~/.zshrc
fpath=(~/.zsh/completions $fpath)
> echo $fpath
/Users/jord/.zsh/completions /usr/local/share/zsh/site-functions /usr/local/Cellar/zsh/5.0.2/share/zsh/functions
Aucune de ces méthodes ne fonctionne.
Qu'est-ce que je fais mal?
MISE À JOUR
La sortie de git-flow [CTRL+X] [h]
est:
> git flow
tags in context :completion::complete:git::
all-files (_files _default _git (eval))
MISE À JOUR 2
Ça marche!
J'ai mis les _git
fonctions de l' URL fournie par @mpy dans ~/.zsh/completions/
et ajouté ~/.zsh/completions
à mon $fpath
in ~/.zshrc
.
fpath=(
~/.zsh/completions
$fpath
)
J'ai ensuite téléchargé à git-flow-completion.zsh
partir de https://github.com/bobthecow/git-flow-completion et je l'ai mis dans ~/.zsh/completions
ce fichier, puis je l'ai recherché .zshrc
.
git
et les git flow
finitions fonctionnent maintenant, mais je ne sais pas pourquoi?!
$fpath
? Et, pouvez-vous s'il vous plaît poster la sortie degit-flow [CTRL+X] [h]
?git-flow
finitions, seulement lesgit
finitions?Réponses:
Le fichier est
$fpath/_git-flow
complet pourgit-flow
(avec tiret), voir sa première ligne:Donc, en utilisant
git-flow [CTRL+X] [h]
je reçoismontrant que
zsh
détecte que l'invite est maintenant au premier argument degit-flow
.La fonction d'achèvement
git
est très puissante (et pour être honnête, je ne peux pas le lire), donc aussigit flow
(sans tiret) fournit l'git-flow
achèvement, mais le contexte est différent:Si vous utilisez un module git non existant, je me retrouve avec
qui ressemble le plus à votre résultat.
Par conséquent, mes suggestions seraient:
_git-flow
fichier de complétions n'est pas corrompu et qu'il a les bonnes fins de lignes (EOL)déclenchez l'achèvement de git-flow avec, par exemple,
git-flow [CTRL+X] [h]
et regardez le résultat dewhich _git-flow
:si la fonction d'achèvement ne peut pas être lue, cela se traduit par
si lu correctement, vous obtenez la fonction imprimée:
essayez de compiler le
_git-flow
fichier de fonction aveczcompile _git-flow
pour voir s’il y aura une erreur. (Ensuite, le fichier résultant_git-flow.zwc
doit être lu lors du chargement automatique.)~/.zcompdump
si l'_git-flow
achèvement est répertorié.la source
zcompile
les finitions apparaissent, mais seulement pourgit-flow
pasgit flow
. Pourquoi est-il nécessaire de compiler les fonctions? Et comment puis-je le faire fonctionnergit flow
?_git
achèvement? S'il existe une version plus ancienne,_git
quelque part dans vos$fpath
affaires, vous risquez de vous perdre. Essayez de compiler_git
aussi?!_git
fichier dans/usr/local/share/zsh/site-functions
AND dans/usr/local/Cellar/zsh/5.0.2/share/zsh/functions
. Une fois l’installation par défaut de zsh, celle-ci est installée par le paquet git Homebrew: | Et, ils sont différents, l'un semble être uniquement du script zsh et l'autre utilise les finitions de bash: /$fpath
et de ne placer que la fonction officielle_git
de sourceforge.net/p/zsh/code/ci/master/tree/Completion/Unix/… dans$fpath
.git-flow-completion.zsh
précisément parce que l'auteur a décidé de ne pas suivre la_
convention. Il fonctionne toujours de la même manière, mais vous devez l’approvisionner au lieu de le déposer à unfpath
emplacement donné pour permettre à Zsh de le récupérer automatiquement.J'ai pensé que vous pourriez essayer ceci: https://github.com/Homebrew/homebrew-core/commit/f710a1395f44224e4bcc3518ee9c13a0dc850be1#r30789420
Vous utilisez macOS? Les autocomplétions fournies avec Homebrew git étaient en conflit avec le script git-flow autocompletions.
Essayez de supprimer le dossier zsh
/usr/local/Cellar/git/x.xx.x/share/
et de recharger votre zsh.Références:
1. https://github.com/Homebrew/homebrew-core/commit/f710a1395f44224e4bcc3518ee9c13a0dc850be1
2. https://github.com/bobthecow/git-flow-completion/issues/50
3. https: // github. com / robbyrussell / oh-my-zsh / numéros / 1717
la source