Git
Chapters ▾ 2nd Edition

A1.5 Appendix A: Git dans d’autres environnements - Git dans Zsh

Git dans Zsh

Git est aussi livré avec une bibliothèque d’achèvement sur tabulation pour Zsh. Copiez simplement contrib/completion/git-completion.zsh dans votre répertoire personnel et sourcez-le depuis votre .zshrc. L’interface de Zsh est un peu plus puissante que celle de Bash :

$ git che<tab>
check-attr        -- display gitattributes information
check-ref-format  -- ensure that a reference name is well formed
checkout          -- checkout branch or paths to working tree
checkout-index    -- copy files from index to working directory
cherry            -- find commits not merged upstream
cherry-pick       -- apply changes introduced by some existing commits

Les achèvements possibles ne sont pas seulement listés ; ils sont complétés par des descriptions utiles et vous pouvez naviguer graphiquement dans la liste en répétant tab de manière répétée. Ceci fonctionne avec les commandes Git, les arguments et les noms des choses dans le dépôt (telles que les références et les serveurs distants), ainsi que les noms de fichiers et les autres choses que Zsh sait achever.

Zsh peut être assez compatible avec Bash en ce qui concerne la personnalisation de l’invite, mais elle vous permet d’avoir aussi une partie droite de l’invite. Pour inclure le nom de la branche sur la partie droite, ajoutez ces lignes à votre fichier ~/.zshrc :

setopt prompt_subst
. ~/git-prompt.sh
export RPROMPT=$'$(__git_ps1 "%s")'

Cela aboutit à un affichage de la branche actuelle sur le côté droit de la fenêtre de terminal quand votre invite est dans un répertoire Git, ce qui ressemble à ceci :

L'invite `zsh` personnalisée.
Figure 163. L’invite zsh personnalisée.

Zsh est assez puissant pour qu’il existe des extensions complètes pour le rendre encore meilleur. Une d’entre elles s’appelle "oh-my-zsh" et on peut la trouver sur https://github.com/robbyrussell/oh-my-zsh. Le système de greffons de oh-my-zsh est doté d’un achèvement sur tabulation pour git puissant et dispose d’une série de thèmes d’invites, dont de nombreux affichent l’information de gestion de version. Un exemple d’un thème oh-my-zsh. n’est qu’un exemple de ce qui peut être fait avec ce système.

Un exemple d'un thème oh-my-zsh.
Figure 164. Un exemple d’un thème oh-my-zsh.