Git
Chapters ▾ 2nd Edition

A1.5 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. Gewoon contrib/completion/git-completion.zsh naar je home directory kopieren en source het van je .zshrc. De interface van zsh is iets krachtiger dan die van 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

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 is toevallig ook redelijk compatible met Bash als het aankomt op het aanpassen van de prompt, maar het staat je toe om ook een prompt aan de rechterkant te hebben. Om de branchnaam rechts te tonen, voeg je deze regels toe aan je ~/.zshrc bestand:

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

Dit resulteert in het tonen van de huidige branch aan de rechterkant van de terminal, zodra je shell in een Git repository staat. Het ziet er ongeveer zo uit:

Aangepaste `zsh` prompt.
Aangepaste zsh prompt.

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. Figure A-12 is maar een voorbeeld van wat gedaan kan worden met dit systeem.

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