X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=zsh%2Frc;h=80178e0cdc57194f6c66d6db910b97055ec68e04;hb=acfeea45e718eeecec36fea55f0ea8037ee6aef5;hp=643d7ae8a0d30227738afa49fc54f87b90693d44;hpb=e531d6fcc133cfa82c0849a1845e7cbeaeff5600;p=config%2Fdotfiles.git diff --git a/zsh/rc b/zsh/rc index 643d7ae..80178e0 100644 --- a/zsh/rc +++ b/zsh/rc @@ -153,16 +153,6 @@ local green="%{${fg[green]}%}" local yellow="%{${fg[yellow]}%}" local default="%{${fg[default]}%}" -# Set the default prompt. The current host and working directory is displayed, -# the exit code of the last command if it wasn't 0, the number of running jobs -# if not 0. -# -# 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 \ -%(1j.$yellow%j$default.)%# \ -%(?..($red%B%?%b$default%) )" - # vcs_info was added in 4.3.9 but it works in earlier versions too. So load it # if the necessary files are available in ~/.zsh/functions/vcs_info (often a # symbolic link to current checkout of Zsh's sources). @@ -175,9 +165,6 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) || $fpath) fi - # Allow substitutions and expansions in the prompt, necessary for - # vcs_info. - setopt promptsubst # Load vcs_info to display information about version control repositories. autoload -Uz vcs_info # Only look for git and mercurial repositories; the only I use. @@ -251,24 +238,40 @@ 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() { + # Used by prompt code below to determine if vcs_info should be run. + RUN_VCS_INFO=1 +else + RUN_VCS_INFO= +fi + +# Set the default prompt. The current host and working directory is displayed, +# the exit code of the last command if it wasn't 0, the number of running jobs +# if not 0. +# +# 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_precmd() { + # Call vcs_info before every prompt. + if [[ -n $RUN_VCS_INFO ]]; then 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 - RPROMPT='${vcs_info_msg_0_}' - # There is a bug in Zsh below 4.3.9 which displays a wrong symbol when - # ${vcs_info_msg_0_} is empty. Provide a workaround for those versions, - # thanks to Frank Terbeck for it. - else - RPROMPT='${vcs_info_msg_0_:- }' + + # Display the VCS information in the right prompt. + if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then + RPROMPT="${vcs_info_msg_0_}" + # There is a bug in Zsh below 4.3.9 which displays a wrong symbol when + # ${vcs_info_msg_0_} is empty. Provide a workaround for those + # versions, thanks to Frank Terbeck for it. + else + RPROMPT="${vcs_info_msg_0_:- }" + fi fi -fi -unset red blue green yellow default + PROMPT="$green%B%m%b$default:$blue%B%~%b$default \ +%(1j.$yellow%j$default.)%# \ +%(?..($red%B%?%b$default%) )" +} +add-zsh-hook precmd prompt_precmd + # When screen, xterm or rxvt is used set the name of the window to the # currently running program.