2009-10-29 12 views
12

J'ai un problème avec l'achèvement de l'onglet zsh: Après l'exécution:Comment activer l'achèvement d'un fichier git avec zsh compinit?

autoload -U compinit 
compinit 

Git complétion des fichiers ne fonctionne pas plus. Par exemple, si je tape git ajouter my_f pour compléter my_file, rien ne se passe. La complétion zsh git ne semble fonctionner que pour les branches et tags git. Sans le compinit stuff, la complétion du fichier git fonctionne, mais bien sûr, il me manque tous les trucs de complétion de la branche de fantaisie.

Alors ... Y a-t-il un moyen de rendre possible l'achèvement du fichier git ET l'achèvement de la branche git en même temps dans zsh? Cela m'aiderait vraiment beaucoup.

+2

Dans mon .zshrc j'ai 'autoload -U compinit' puis 'compinit' sur une ligne séparée, et les complétions fonctionnent bien pour moi. Exécutez-vous une seule commande, ou est-ce que le formatage me perturbe? – bobDevil

+1

Compléter des fichiers après 'git add' fonctionne aussi pour moi (' zsh' 4.3.10-dev-1). Une chose surprenante est qu'elle ne propose que des fichiers non suivis et suivis mais modifiés lors de l'exécution de 'git add' (c'est OK car ce sont les seules choses que vous auriez besoin d'ajouter). Pour 'git diff', il offre tous les fichiers suivis et toutes les branches. –

+0

@Chris Johnsen: Vous avez raison, cela fonctionne avec les fichiers qui correspondent à la commande git actuelle, comme les fichiers non-compressés dans le cas de git add. J'ai essayé l'achèvement sans faire attention à cela. Alors merci beaucoup! –

Répondre

10

(j'ajouter une réponse ici la plupart du temps pour l'obtenir de la liste sans réponse.)

Comme vous pouvez le voir dans les commentaires, il fonctionne. Je crois que toute la situation zsh a récemment amélioré de manière significative aussi:

commettras 06f44c3cc5ca5eca638f300a518c65aa98d26d6d

Date: Mon Sep 6 08:33:19 2010 -0400

fin: rendre compatibles avec zsh

Modifiez git-completion.bash pour qu'il fonctionne également avec zsh lors de l'utilisation de bashcompinit. ...

Donc, si vous arrive dans cette googler, et votre achèvement ne fonctionne pas, essayez de mettre à jour vos git-completion.bash (lien pointe vers le blob de HEAD git.git). La version git actuelle est 1.7.3.2; il devrait en faire le prochain.

+6

Bien qu'il y ait eu un travail récent pour rendre 'contrib/git-completion.bash' git.git utilisable via avec' bashcompinit' sous * zsh *, une installation * zsh * typique est plus susceptible d'utiliser la complétion * git * est livré avec * zsh *: [Completion/Unix/Command/_git] (http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob;f=Completion/Unix/ Commande/_git; hb = HEAD). –

+0

Je ne sais pas quand cela a changé, mais je viens de vérifier et mon achèvement fonctionne très bien pour Git sous Zsh. (Je suis tellement habitué à ça que je ne pense pas que j'ai essayé de l'utiliser pendant des années.) Je suis sur Git 1.8.3.4, pour ce que ça vaut – iconoclast