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ü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; heben Sie einfach die Kommentierung zur PROMPT-Zuweisung auf. Es sieht in etwa so aus:

Benutzerdefinierter `zsh` Prompt
Abbildung 159. Benutzerdefinierter zsh Prompt

Weitere Informationen zu vcs_info finden Sie 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 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. 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 160. Ein Beispiel für ein oh-my-zsh Theme
scroll-to-top