#!/bin/zsh setopt prompt_subst parse_git_remote() { git branch -v 2> /dev/null | awk -F '[][]' '/^\*/ {print $2}' | sed 's/ahead/↑ /;s/behind/↓ /;s/[^↓↑]*/ /g' } parse_git_branch() { git symbolic-ref --short HEAD 2> /dev/null || git rev-parse --short HEAD 2> /dev/null } parse_git_status() { git status --short 2> /dev/null | head -n1 | awk '{print $1 " "}' } PS1=' %3~ ' RPROMPT='%F{blue}$(parse_git_remote)%f%F{red}$(parse_git_status)%f%F{green}$(parse_git_branch)%f%(?.. %?)'