From 7878dcf9328658f8d6b1755fdb143ef9877b93cc Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Mon, 17 May 2010 12:34:24 +0200 Subject: [PATCH] zsh/rc: Set PROMPT in a precmd() hook. --- zsh/rc | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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. -- 2.44.2