# from <http://ft.bewatermyfriend.org/comp/zsh/zsh-dotfiles.tar.bz2>,
# which distributed under the same terms as zsh itself.
-# we will only be using one variable, so let the code know now.
-zstyle ':vcs_info:*' max-exports 1
+# we will be using two variables, so let the code know now.
+zstyle ':vcs_info:*' max-exports 2
# vcs_info() documentation:
#{{{
(( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]-'
fi
- (( ${#msgs} > maxexports )) && msgs[${maxexports},-1]=()
+ (( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=()
for i in {1..${#msgs}} ; do
- zformat -f msg ${msgs[$i]} a:${action} b:${branch} s:${vcs} r:${base:t} R:${base} S:"$(VCS_INFO_reposub ${base})"
+ zformat -f msg ${msgs[$i]} \
+ a:${action} \
+ b:${branch} \
+ r:${base:t} \
+ s:${vcs} \
+ R:${base} \
+ S:"$(VCS_INFO_reposub ${base})"
msgs[$i]=${msg}
done
return 0
}
# }}}
VCS_INFO_maxexports () { #{{{
- local -ix maxexports
-
zstyle -s ":vcs_info:${vcs}:${usercontext}" "max-exports" maxexports || maxexports=2
if [[ ${maxexports} != <-> ]] || (( maxexports < 1 )); then
printf 'vcs_info(): expecting numeric arg >= 1 for max-exports (got %s).\n' ${maxexports}
local -i found
local -a VCSs disabled dps
local -x vcs usercontext
+ local -ix maxexports
local -ax msgs
local -Ax vcs_comm
VCS_INFO_set --nvcs preinit
# }}}
-# change vcs_info formats for the grml prompt
+# Change vcs_info formats for the grml prompt. The 2nd format sets up
+# $vcs_info_msg_1_ to contain "zsh: repo-name" used to set our screen title.
+# TODO: The included vcs_info() version still uses $VCS_INFO_message_N_.
+# That needs to be the use of $VCS_INFO_message_N_ needs to be changed
+# to $vcs_info_msg_N_ as soon as we use the included version.
if [[ "$TERM" == dumb ]] ; then
- zstyle ':vcs_info:*' actionformats "(%s%)-[%b|%a] "
- zstyle ':vcs_info:*' formats "(%s%)-[%b] "
+ zstyle ':vcs_info:*' actionformats "(%s%)-[%b|%a] " "zsh: %r"
+ zstyle ':vcs_info:*' formats "(%s%)-[%b] " "zsh: %r"
else
# these are the same, just with a lot of colours:
- zstyle ':vcs_info:*' actionformats "${MAGENTA}(${NO_COLOUR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${YELLOW}|${RED}%a${MAGENTA}]${NO_COLOUR} "
- zstyle ':vcs_info:*' formats "${MAGENTA}(${NO_COLOUR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${MAGENTA}]${NO_COLOUR}%} "
+ zstyle ':vcs_info:*' actionformats "${MAGENTA}(${NO_COLOUR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${YELLOW}|${RED}%a${MAGENTA}]${NO_COLOUR} " \
+ "zsh: %r"
+ zstyle ':vcs_info:*' formats "${MAGENTA}(${NO_COLOUR}%s${MAGENTA})${YELLOW}-${MAGENTA}[${GREEN}%b${MAGENTA}]${NO_COLOUR}%} " \
+ "zsh: %r"
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat "%b${RED}:${YELLOW}%r"
fi
# make sure to use right prompt only when not running a command
is41 && setopt transient_rprompt
+# TODO: revise all these NO* variables and especially their documentation
+# in zsh-help() below.
is4 && [[ $NOPRECMD -eq 0 ]] && precmd () {
[[ $NOPRECMD -gt 0 ]] && return 0
# update VCS information
vcs_info
if [[ $TERM == screen* ]] ; then
- print -nP "\ekzsh\e\\"
+ if [[ -n ${VCS_INFO_message_1_} ]] ; then
+ print -nP "\ek${VCS_INFO_message_1_}\e\\"
+ else
+ print -nP "\ekzsh\e\\"
+ fi
fi
# just use DONTSETRPROMPT=1 to be able to overwrite RPROMPT
if [[ $DONTSETRPROMPT -eq 0 ]] ; then
fi
# adjust title of xterm
# see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
+ [[ ${NOTITLE} -gt 0 ]] && return 0
case $TERM in
(xterm*|rxvt*)
print -Pn "\e]0;%n@%m: %~\a"
echo -ne "\ek$CMD\e\\"
fi
# adjust title of xterm
+ [[ ${NOTITLE} -gt 0 ]] && return 0
case $TERM in
(xterm*|rxvt)
print -Pn "\e]0;%n@%m: $1\a"
"NOCOR=1 zsh" => deactivate automatic correction
"NOMENU=1 zsh" => do not use auto menu completion (note: use ctrl-d for completion instead!)
"NOPRECMD=1 zsh" => disable the precmd + preexec commands (set GNU screen title)
+ "NOTITLE=1 zsh" => disable setting the title of xterms without disabling
+ preexec() and precmd() completely
"BATTERY=1 zsh" => activate battery status (via acpi) on right side of prompt
A value greater than 0 is enables a feature; a value equal to zero