]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
Display current VCS in right prompt.
authorSimon Ruderich <simon@ruderich.org>
Mon, 12 Jan 2009 16:56:42 +0000 (17:56 +0100)
committerSimon Ruderich <simon@ruderich.org>
Mon, 16 Feb 2009 15:34:41 +0000 (16:34 +0100)
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

diff --git a/zsh/rc b/zsh/rc
index aa24736f255ff9601af685db50807ff0cecd9c99..b28757eec6fffce0634f977e02decfd7d8ffe674 100644 (file)
--- 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