From: Simon Ruderich Date: Mon, 17 May 2010 10:34:24 +0000 (+0200) Subject: zsh/rc: Set PROMPT in a precmd() hook. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;ds=sidebyside;h=7878dcf9328658f8d6b1755fdb143ef9877b93cc;p=config%2Fdotfiles.git zsh/rc: Set PROMPT in a precmd() hook. --- diff --git a/zsh/rc b/zsh/rc index e29219a..635ea6d 100644 --- a/zsh/rc +++ b/zsh/rc @@ -241,11 +241,6 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) || } add-zsh-hook chpwd prompt_chpwd - # Call vcs_info as precmd before every prompt. - prompt_precmd() { - vcs_info - } - add-zsh-hook precmd prompt_precmd # Display the VCS information in the right prompt. if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then @@ -256,6 +251,10 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) || else RPROMPT='${vcs_info_msg_0_:- }' fi + + RUN_VCS_INFO=1 +else + RUN_VCS_INFO= fi # Set the default prompt. The current host and working directory is displayed, @@ -264,11 +263,18 @@ fi # # The prompt is in green and blue to make easily detectable, the error exit # code in red and bold and the job count in yellow. -PROMPT="$green%B%m%b$default:$blue%B%~%b$default \ +prompt_precmd() { + # Call vcs_info before every prompt. + if [[ -n $RUN_VCS_INFO ]]; then + vcs_info + fi + + PROMPT="$green%B%m%b$default:$blue%B%~%b$default \ %(1j.$yellow%j$default.)%# \ %(?..($red%B%?%b$default%) )" +} +add-zsh-hook precmd prompt_precmd -unset red blue green yellow default # When screen, xterm or rxvt is used set the name of the window to the # currently running program.