From b4b3911d9f162de2a8632de90dfe3449cf58a4f2 Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Mon, 12 Jan 2009 17:56:42 +0100 Subject: [PATCH] Display current VCS in right prompt. Used with Git and Mercurial. When in one of these repositories the current branch and version control system is displayed in the right prompt. --- zsh/rc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/zsh/rc b/zsh/rc index aa24736..b28757e 100644 --- a/zsh/rc +++ b/zsh/rc @@ -66,6 +66,31 @@ PROMPT="%{${fg[green]}%}%B%m%b%{${fg[default]}%}:\ %(1j.%{${fg[yellow]}%}%j%{${fg[default]}%}.)%(2L.+.)%# \ %(?..(%{${fg[red]}%}%B%?%b%{${fg[default]}%}%) )" +# 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. +zstyle ':vcs_info:*' enable git hg +# Set style of vcs_info display. The current branch (green) and vcs (blue) is +# displayed. If there is an special action going on (merge, rebase) it's also +# displayed (red). +zstyle ':vcs_info:*' formats \ +"(%{${fg[green]}%}%b%{${fg[default]}%}:\ +%{${fg[blue]}%}%s%{${fg[default]}%})" +zstyle ':vcs_info:*' actionformats \ +"(%{${fg[green]}%}%b%{${fg[default]}%}/\ +%{${fg[red]}%}%a%{${fg[default]}%}:\ +%{${fg[blue]}%}%s%{${fg[default]}%})" +# 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. +RPROMPT='${vcs_info_msg_0_}' + # COMPLETION SETTINGS -- 2.44.2