]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
zsh/rc: Use correct spelling of vcs_info.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index caa9c5f2f28e78f42ed2690467264ca1695aff94..50291513fb67ca0aa7490dbfe22d82446354ebcd 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -141,12 +141,12 @@ 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
+# 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).
 if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ||
       -d ~/.zsh/functions/vcs_info ]]; then
-    # Update fpath to allow loading the VCS_Info functions.
+    # Update fpath to allow loading the vcs_info functions.
     if [[ -d ~/.zsh/functions/vcs_info ]]; then
        fpath=(~/.zsh/functions/vcs_info/
               ~/.zsh/functions/vcs_info/Backends
@@ -154,9 +154,9 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ||
     fi
 
     # Allow substitutions and expansions in the prompt, necessary for
-    # VCS_Info.
+    # vcs_info.
     setopt promptsubst
-    # Load VCS_Info to display information about version control repositories.
+    # 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
@@ -164,14 +164,24 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ||
     # below). This comes with a speed penalty for bigger repositories.
     zstyle ':vcs_info:*' check-for-changes true
 
-    # Set style of VCS_Info display. The current branch (green) and VCS (blue)
+    # 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). Also display if there are unstaged or staged
     # (%u/%c) changes.
-    zstyle ':vcs_info:*' formats \
-        "($green%b%u%c$default:$blue%s$default)"
-    zstyle ':vcs_info:*' actionformats \
-        "($green%b%u%c$default/$red%a$default:$blue%s$default)"
+    if [[ $ZSH_VERSION == (4.3.<11->|4.<4->*|<5->*) ||
+          -d ~/.zsh/functions/vcs_info ]]; then
+        zstyle ':vcs_info:*' formats \
+            "($green%b%u%c$default:$blue%s$default)"
+        zstyle ':vcs_info:*' actionformats \
+            "($green%b%u%c$default/$red%a$default:$blue%s$default)"
+    else
+        # In older versions %u and %c are not defined yet and are not
+        # correctly expanded.
+        zstyle ':vcs_info:*' formats \
+            "($green%b$default:$blue%s$default)"
+        zstyle ':vcs_info:*' actionformats \
+            "($green%b$default/$red%a$default:$blue%s$default)"
+    fi
     # Set style for formats/actionformats when unstaged (%u) and staged (%c)
     # changes are detected in the repository; check-for-changes must be set to
     # true for this to work. Thanks to Bart Trojanowski
@@ -180,7 +190,7 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ||
     zstyle ':vcs_info:*' unstagedstr '¹'
     zstyle ':vcs_info:*' stagedstr   '²'
 
-    # Call VCS_Info as precmd before every prompt.
+    # Call vcs_info as precmd before every prompt.
     prompt_precmd() {
         vcs_info
     }
@@ -442,25 +452,6 @@ tig() {
 }
 
 
-# RUN COMMANDS
-
-# If not already in screen reattach to a running session or create a new one.
-#
-# screen* is necessary as `screen` uses screen.linux for example for a linux
-# console which would otherwise cause an infinite loop.
-if [[ $TERM != screen* && $TERM != 'dumb' ]]; then
-    # Get running detached sessions.
-    session=$(screen -list | grep 'Detached' | awk '{ print $1; exit }')
-    # Create a new session if none is running.
-    if [[ -z $session ]]; then
-        screen
-    # Reattach to a running session.
-    else
-        screen -r $session
-    fi
-fi
-
-
 # OS SPECIFIC SETTINGS
 
 if [[ $(uname) == Linux ]]; then
@@ -489,9 +480,31 @@ elif [[ $(uname) == Darwin ]]; then # Mac OS X
 fi
 
 
+# LOAD ADDITIONAL CONFIGURATION FILES
+
 # Load rc file for current hostname (first part before a dot) or rc.local.
 source_config ~/.zsh host rc ${$(hostname)//.*/}
 
+
+# RUN COMMANDS
+
+# If not already in screen reattach to a running session or create a new one.
+#
+# screen* is necessary as `screen` uses screen.linux for example for a linux
+# console which would otherwise cause an infinite loop.
+if [[ $TERM != screen* && $TERM != 'dumb' ]]; then
+    # Get running detached sessions.
+    session=$(screen -list | grep 'Detached' | awk '{ print $1; exit }')
+    # Create a new session if none is running.
+    if [[ -z $session ]]; then
+        screen
+    # Reattach to a running session.
+    else
+        screen -r $session
+    fi
+fi
+
+
 source_debug "finished sourcing ~/.zsh/rc"
 
 # vim: ft=zsh