Git
Chapters ▾ 2nd Edition

A1.5 Appendix A: Git in andere omgevingen - Git in Zsh

Git in Zsh

Git wordt ook geleverd met een library voor het voltooien van commando’s met tab voor Zsh. Om het te gebruiken, roep je gewoon autoload -Uz compinit && compinit aan in je .zshrc. De interface van zsh is een stukje krachtiger dan die van Bash:

$ git che<tab>
check-attr        -- laat gitattributes informatie zien
check-ref-format  -- controleer dat een referentie naam goed is samengesteld
checkout          -- checkout branch of pad naar de working tree
checkout-index    -- kopieer bestanden van de index naar working directory
cherry            -- vind commits die nog niet stroomopwaards zijn gemerged
cherry-pick       -- pas wijzigingen toe die door enkele bestaande commits zijn geintroduceerd

Tab-voltooingen die ambigue zijn worden niet alleen getoond; ze hebben behulpzame omschrijvingen, en je kunt de lijst grafisch navigeren door herhaaldelijk tab in te drukken. Dit werkt met Git commando’s, hun argumenten, en namen van zaken die zich in de repository bevinden (zoals refs en remotes), zowel als bestandsnamen en alle andere zaken waarvan Zsh weet hoe deze met de tab te voltooien.

Zsh wordt geleverd met een framework om informatie op te halen van een versie beheer systeem, genaamd vcs_info. Om de branchnaam rechts te tonen, voeg je deze regels toe aan je ~/.zshrc bestand:

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'

Dit resulteert in het tonen van de huidige branch aan de rechterkant van de terminal, zodra je shell in een Git repository staat. (De linkerkant wordt ook ondersteund, vanzelfsprekend; gewoon de toewijzing naar PROMPT ontcommentarieren.) Het ziet er ongeveer zo uit:

Aangepaste `zsh` prompt.
Figure 163. Aangepaste zsh prompt.

Voor meer informatie over vcs_info, kan je de documentatie bekijken in de zshcontrib(1) man-page, of online op http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.

In plaats van vcs_info, heb je misschien voorkeur voor de prompt-aanpassingsscript dat met Git wordt geleverd, deze heet git-prompt.sh; zie https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh voor details. git-prompt.sh is compatible met Bash en Zsh.

Zsh is krachtig genoeg dat er complete frameworks aan zijn gewijd om het beter te maken. Een van deze heet "oh-my-zsh", en deze staat op https://github.com/robbyrussell/oh-my-zsh. In het plugin systeem van oh-my-zsh zit een krachtige git tab-voltooing, en het heeft een rijke verzameling prompt "themes", en vele daarvan tonen versie-beheer gegevens. Een voorbeeld van een oh-my-zsh thema. is maar een voorbeeld van wat gedaan kan worden met dit systeem.

Een voorbeeld van een oh-my-zsh thema.
Figure 164. Een voorbeeld van een oh-my-zsh thema.