Modification de la saisie semi-automatique de zsh git

10

Je viens de passer de bash à l'utilisation de zsh 4.3.4 sur Ubuntu Hardy. Je développe avec git et je me retrouve constamment en train de me battre avec les compléments par défaut de git: la complétion de nom de fichier essaie d'être intelligente en détectant ce que vous avez ajouté ou supprimé (en utilisant des fichiers git-ls) mais parfois cela se passe mal --- par exemple, si vous êtes dans un sous-répertoire. Il ne connaît pas non plus mes alias git personnalisés (par exemple, git ci comme alias pour commit).

zsh superusers, comment dois-je améliorer cette situation?

Voici quelques-unes de mes réflexions, bien que je ne sache pas comment les implémenter car je suis nouveau sur zsh, alors vous pouvez peut-être aider ou offrir les vôtres:

  • Désactivez la complétion du nom de fichier git, en laissant juste la complétion branche / tag / nom-commande / option-commande.
  • Remplacez l'achèvement "intelligent" du nom de fichier par l'achèvement normal du nom de fichier zsh.
  • Obtenez un fichier d'achèvement _git plus récent, s'il corrige ces bogues, et remplacez celui du système.

Merci!

Emil Sit
la source
Avez-vous essayé github.com/robbyrussell/oh-my-zsh
ukanth
Oui, pour autant que je sache, cela ajoute simplement une invite git et ne modifie pas les complétions sous-jacentes.
Emil Sit
Quelqu'un peut-il simplement nous dire comment désactiver toute la complétion "intelligente" pour toutes les commandes git? Ils font trop d'E / S. La coque doit répondre instantanément. Je veux juste revenir à la bonne vieille complétion de nom de fichier simple pour les commandes git. Chaque fois que je fais une recherche sur le Web pour cela, je reçois juste un labyrinthe d'informations génériques sur les pages de manuel de zsh.
Peter Lyons
2
Pour toute personne qui veut simplement désactiver la complétion git ennuyeuse qui fait que le shell bloque les IO, sur Ubuntu 10.04, je viens de le faire: sudo mv /usr/share/zsh/functions/Completion/Unix/_git /usr/share/zsh/functions/Completion/Unix/OFF_git
Peter Lyons

Réponses:

5

Essayez de passer à la dernière version de Zsh. Je viens de passer de 4.3.4 à 4.3.10 et cela résout au moins le problème avec les alias Git qui ne se terminent pas.

Au lieu de pirater mon installation, j'ai ajouté ceci à mon local .zshrc:

customzsh=/usr/local/src/zsh-4.3.10/bin/zsh-4.3.10
if [ "$SHELL" != "$customzsh" ]; then
  export SHELL=$customzsh
  exec $customzsh
fi
un nerd payé
la source
5

Pour les grands projets, même les nouveaux scripts de complétion git sont beaucoup trop lents. Pour les désactiver et utiliser simplement l'achèvement de fichier normal, placez la commande suivante dans votre .zshrc:

compdef -d git
rapide
la source