blob: c10c766728940cf6a04d1725bb87085ed65e6c14 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
setopt promptsubst
autoload -Uz add-zsh-hook
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' check-for-changes false
zstyle ':vcs_info:*' actionformats \
'%B%F{cyan}(%b)%f%%b%c'
zstyle ':vcs_info:*' formats \
'%B%F{cyan}(%b)%f%%b%c'
# we want to catch unstaged and untracked in one swoop
zstyle ':vcs_info:git*+set-message:*' hooks git-dirty
function +vi-git-dirty {
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]]
then
if git status --porcelain | grep -Fq -e 'A' -e '??' -e 'M'
then
hook_com[staged]+=' %B%F{yellow}✗%f%b '
else
hook_com[staged]+=' %B%F{green}✔%f%b '
fi
fi
}
add-zsh-hook -Uz precmd vcs_info
PS1='%B%(?.%F{green}.%F{red})→%f%b %B%(!.%F{red}.%F{blue})%1~%f%b ${vcs_info_msg_0_}'
RPS1='%B%F{red}[%n@%m]%f%b'
# vim: ft=zsh
|