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:*' formats "[%F{cyan}%b%f%u%c]"
  vcs_info 'prompt'
}
local vcs='${vcs_info_msg_0_}'

# autocorrect
autoload -U compinit
compinit
setopt correct_all
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

# 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 "