32 lines
1.2 KiB
Bash
32 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
## autoload vcs and colors
|
|
autoload -Uz vcs_info
|
|
autoload -U colors && colors
|
|
|
|
# enable only git
|
|
zstyle ':vcs_info:*' enable git
|
|
|
|
# setup a hook that runs before every ptompt.
|
|
precmd_vcs_info() { vcs_info }
|
|
precmd_functions+=( precmd_vcs_info )
|
|
setopt prompt_subst
|
|
|
|
# add a function to check for untracked files in the directory.
|
|
# from https://github.com/zsh-users/zsh/blob/master/Misc/vcs_info-examples
|
|
zstyle ':vcs_info:git*+set-message:*' hooks git-untracked
|
|
#
|
|
+vi-git-untracked(){
|
|
if [[ $(git rev-parse --is-inside-work-tree 2> /dev/null) == 'true' ]] && \
|
|
git status --porcelain | grep '??' &> /dev/null ; then
|
|
# files in $PWD, use:
|
|
#[[ -n $(git ls-files --others --exclude-standard) ]] ; then
|
|
hook_com[staged]+='!' # signify new files with a bang
|
|
fi
|
|
}
|
|
|
|
zstyle ':vcs_info:*' check-for-changes true
|
|
#zstyle ':vcs_info:git:*' formats " %r/%S %b %m%u%c "
|
|
zstyle ':vcs_info:git:*' formats " %{$fg[blue]%}(%{$fg[red]%}%m%u%c%{$fg[yellow]%}%{$fg[magenta]%} %a%{$fg[magenta]%}%b%{$fg[blue]%})"
|
|
PROMPT="%B%[%{$fg[black]%}%m%{$fg[blue]%}@%{$fg[white]%}%n%{$fg[blue]%}] %(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )%{$fg[blue]%}%c%{$reset_color%}"
|
|
PROMPT+="\$vcs_info_msg_0_ "
|