Git
Chapters ▾ 2nd Edition

A1.7 Annexe 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. Pour l’utiliser, lancez simplement autoload -Uz compinit && compinit dans 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 est livré avec un système pour récupérer de l’information depuis les systèmes de gestion de version, appelé vcs_info. Pour inclure le nom de la branche sur la partie droite, ajoutez ces lignes à votre fichier ~/.zshrc :

autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT=\$vcs_info_msg_0_
# PROMPT=\$vcs_info_msg_0_'%# '
zstyle ':vcs_info:git:*' formats '%b'

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. Le côté gauche est aussi géré, bien sur ; décommentez simplement l’assignation de PROMPT. Cela ressemble à :

L’invite `zsh` personnalisée.
Figure 161. L’invite zsh personnalisée.

Pour plus d’information sur vcs_info, reportez-vous à sa documentation dans la page de manuel de zshcontrib(1), ou en ligne sur http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.

Au lieu de vcs_info, vous préférerez peut-être le script de personnalisation de l’invite qui est livré avec Git, appelé git-prompt.sh. Référez-vous à https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh pour plus de détails. git-prompt.sh est compatible avec Bash et Zsh.

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 162. Un exemple d’un thème oh-my-zsh.