dotfiles/zsh/new-prompt
Andrew Tomaka f2676dabcf Prompt work...mostly, notes
Hack together a prompt that does most of what we did before but is a bit
simpler.  Throw it all into precmd because why not....
2015-12-11 00:23:32 -05:00

35 lines
863 B
Text

local current_time="[%B%D{%I:%M:%S}%b]"
local current_dir='%B%F{blue}%~%f%b'
# user
local user="%F{green}%n%f"
# host
local host=""
if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then
host='%F{yellow}%M%f' #SSH
else
host='%F{green}%M%f' # no SSH
fi
# vcs
precmd() {
setopt promptsubst
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git hg svn
zstyle ':vcs_info:*:prompt:*' nvcsformats ""
zstyle ':vcs_info:*:prompt:*' check-for-changes true
zstyle ':vcs_info:*:prompt:*' unstagedstr "*"
zstyle ':vcs_info:*:prompt:*' stagedstr "*"
zstyle ':vcs_info:*:prompt:*' formats "[%F{yellow}%b%f%u%c]"
vcs_info 'prompt'
}
local vcs='${vcs_info_msg_0_}'
# prompt
local return_code="%(?..%?)"
local prompt="%(?.%F{green}->.%F{red}-%B${return_code}%b%F{red}->%{%})%f"
PROMPT="${current_time} ${user}@${host} ${current_dir} ${vcs}
|$prompt "