Git
Chapters ▾ 2nd Edition

A1.7 Anhang 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üge einfach autoload -Uz compinit && compinit in deiner .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 du kannst durch die Liste navigieren, indem du wiederholt auf Tab drückst. 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üge deiner ~/.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 deine Shell in einem Git-Repository befindet. Die linke Seite wird natürlich auch unterstützt. Entferne einfach die Kommentierung zur PROMPT-Zuweisung. Es sieht in etwa so aus:

Benutzerdefinierter `zsh` Prompt
Abbildung 185. Benutzerdefinierter zsh Prompt

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

Anstelle von vcs_info bevorzugst du möglicherweise das im Lieferumfang von Git enthaltene Skript zur Anpassung der Eingabeaufforderung mit dem Namen git-prompt.sh. Weitere Informationen findest du 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. Ein Beispiel für ein oh-my-zsh Theme ist nur ein Beispiel dafür, was mit diesem System möglich ist.

Ein Beispiel für ein oh-my-zsh Theme
Abbildung 186. Ein Beispiel für ein oh-my-zsh Theme
scroll-to-top