For at implementere en tilsvarende funktionalitet som parse_git_branch
fra bash i zsh, uden at køre kommandoen ved opsætning af prompten, kan du følge disse trin:
function parse_git_branch() {
git branch 2>/dev/null | grep '*' | sed 's/* //'
}
function update_prompt() {
local git_branch=$(parse_git_branch)
if [ -n "$git_branch" ]; then
PROMPT="%n@%m:%~ on %F{yellow}$git_branch%f %# "
else
PROMPT="%n@%m:%~ %# "
fi
}
autoload -Uz add-zsh-hook
add-zsh-hook precmd update_prompt
Med denne opsætning vil parse_git_branch
funktionen kun blive kaldt, når prompten skal opdateres, og ikke ved opsætningen af prompten. Dette sikrer, at den aktuelle git-branch kun hentes, når det er nødvendigt.