Git
Chapters ▾ 2nd Edition

A1.8 Appendix A: Git in anderen Umgebungen - Git in Zsh

Git in Zsh

Zsh wird ebenfalls mit einer Tab-Completion-Bibliothek für Git ausgeliefert. Um es zu benutzen, fügen Sie einfach autoload -Uz compinit && compinit in Ihrer .zshrc Datein ein. Die Oberfläche von Zsh ist etwas leistungsfähiger als die von 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

Mehrdeutige Tab-Vervollständigungen werden nicht nur aufgelistet. Sie haben hilfreiche Beschreibungen und Sie können durch die Liste navigieren, indem Sie wiederholt auf Tab drücken. Dies funktioniert mit Git-Befehlen, ihren Argumenten und Namen von Objekten im Repository (wie Refs und Remotes) sowie mit Dateinamen und all den anderen Dingen, die Zsh mit Tabulatoren vervollständigen kann.

Zsh wird mit einem Framework zum Abrufen von Informationen von Versionskontrollsystemen namens „vcs_info" ausgeliefert. Fügen Sie Ihrer ~/.zshrc-Datei die folgenden Zeilen hinzu, um den Namen des Branches in die Eingabeaufforderung auf der rechten Seite aufzunehmen:

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'

Dies führt zu einer Anzeige des aktuellen Branches auf der rechten Seite des Terminalfensters, wenn sich Ihre Shell in einem Git-Repository befindet. (Die linke Seite wird natürlich auch unterstützt; kommentieren Sie einfach die PROMPT Zuweisung zu aus.) Es sieht in etwa so aus:

Customized `zsh` prompt.
Figure 163. Customized zsh prompt.

Weitere Informationen zu vcs_info finden Sie in der Dokumentation          in der zshcontrib (1) Manpage,          oder online unter http://zsh.sourceforge.net/Doc/Release/User-Contributions.html#Version-Control-Information.

Anstelle von vcs_info bevorzugen Sie möglicherweise das im Lieferumfang von Git enthaltene Skript zur Anpassung der Eingabeaufforderung mit dem Namen „git-prompt.sh". Weitere Informationen finden Sie unter https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh. git-prompt.sh ist sowohl mit Bash als auch mit Zsh kompatibel.

Zsh ist mächtig genug, dass es ganze Frameworks gibt, um es besser zu machen. Eins von ihnen heißt "oh-my-zsh" und ist unter https://github.com/robbyrussell/oh-my-zsh zu finden. Das Plugin-System von oh-my-zsh verfügt über eine leistungsstarke Git-Tab-Vervollständigung und eine Vielzahl von PROMPT „Themen", von denen viele Versionskontrolldaten anzeigen. << oh_my_zsh_git >> ist nur ein Beispiel dafür, was mit diesem System möglich ist.

An example of an oh-my-zsh theme.
Figure 164. An example of an oh-my-zsh theme.