]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - zsh/rc
zsh/rc: Don't display + in prompt when running as subshell.
[config/dotfiles.git] / zsh / rc
diff --git a/zsh/rc b/zsh/rc
index 9a413fade98d3c286731e336bac438d61720ca50..5276361bf8f371dd0f814c1b2b07ae61427933d9 100644 (file)
--- a/zsh/rc
+++ b/zsh/rc
@@ -125,15 +125,21 @@ bindkey -a "^N" history-beginning-search-forward
 # Use colorized output, necessary for prompts and completions.
 autoload -U colors && colors
 
+# Some shortcuts for colors.
+local red="%{${fg[red]}%}"
+local blue="%{${fg[blue]}%}"
+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 and a + if this shell is running inside another shell.
 # 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="%{${fg[green]}%}%B%m%b%{${fg[default]}%}:\
-%{${fg[blue]}%}%B%~%b%{${fg[default]}%} \
-%(1j.%{${fg[yellow]}%}%j%{${fg[default]}%}.)%(2L.+.)%# \
-%(?..(%{${fg[red]}%}%B%?%b%{${fg[default]}%}%) )"
+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
@@ -148,29 +154,26 @@ 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
-    # 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).
     zstyle ':vcs_info:*' formats \
-    "(%{${fg[green]}%}%b%{${fg[default]}%}:\
-%{${fg[blue]}%}%s%{${fg[default]}%})"
+        "($green%b$default:$blue%s$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.
+        "($green%b$default/$red%a$default:$blue%s$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.
+    # 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
@@ -181,6 +184,8 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ||
     fi
 fi
 
+unset red blue green yellow default
+
 # When screen, xterm or rxvt is used set the name of the window to the
 # currently running program.
 #