-# keys
-bindkey "^[[7~" beginning-of-line #Home
-bindkey "^[[8~" end-of-line #End
-bindkey "^[[3~" delete-char #Del
-# vt keys
-bindkey "^[[H" beginning-of-line #Home
-bindkey "^[[F" end-of-line #End
+## prompt
+setopt prompt_subst
+PROMPT='%F{$VICOL}%n%f@%F{$VICOL}%2m%f%(?../%F{red}$?%f)%# '
+RPROMPT='%F{yellow}${vcs_info_msg_0_:-%~}%f %T'
+
+function zle-line-init zle-keymap-select {
+ VICOL="${${KEYMAP:/vicmd/red}:/(main|viins)/green}"
+ zle reset-prompt
+}
+zle -N zle-line-init
+zle -N zle-keymap-select
+
+autoload -Uz vcs_info
+zstyle ':vcs_info:*' enable git
+zstyle ':vcs_info:git*' formats "%c%u%%F{green}%r/%b%%f/%%F{yellow}%S%%f"
+zstyle ':vcs_info:git*' actionformats "%%F{red}(%a)%%f %c%u%%F{green}%r/%b%%f/\
+%%F{yellow}%S%%f"
+zstyle ':vcs_info:git*' check-for-changes true
+zstyle ':vcs_info:git*' stagedstr "%F{blue}+"
+zstyle ':vcs_info:git*' unstagedstr "%F{red}*"