| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- # vim:ft=zsh ts=2 sw=2 sts=2
- # first approach to simple template using some functions from agnoster theme
- # Git: branch/detached head, dirty status
- prompt_git() {
- local ref dirty mode repo_path
- repo_path=$(git rev-parse --git-dir 2>/dev/null)
- if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then
- dirty=$(parse_git_dirty)
- ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)"
- if [[ -n $dirty ]]; then
- prompt_segment yellow black
- else
- prompt_segment green black
- fi
- if [[ -e "${repo_path}/BISECT_LOG" ]]; then
- mode=" <B>"
- elif [[ -e "${repo_path}/MERGE_HEAD" ]]; then
- mode=" >M<"
- elif [[ -e "${repo_path}/rebase" || -e "${repo_path}/rebase-apply" || -e "${repo_path}/rebase-merge" || -e "${repo_path}/../.dotest" ]]; then
- mode=" >R>"
- fi
- setopt promptsubst
- autoload -Uz vcs_info
- zstyle ':vcs_info:*' enable git
- zstyle ':vcs_info:*' get-revision true
- zstyle ':vcs_info:*' check-for-changes true
- zstyle ':vcs_info:*' stagedstr '✚'
- zstyle ':vcs_info:git:*' unstagedstr '●'
- zstyle ':vcs_info:*' formats ' %u%c'
- zstyle ':vcs_info:*' actionformats ' %u%c'
- vcs_info
- echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_%% }${mode}"
- fi
- }
- PROMPT='[%~] '
- RPROMPT='[$(prompt_git)]'
|