autoload colors zsh/terminfo
if [[ "$terminfo[colors]" -ge 8 ]]; then
- colors
+ colors
fi
eval `dircolors`
zstyle ':completion:*' menu select
zmodload -i zsh/complist
-#TERM=xterm-256color
-
-
# bind special keys according to readline configuration
#eval "$(sed -n 's/^/bindkey /; s/: / /p' /etc/inputrc)"
setopt \
- EXTENDEDGLOB \
- BASH_AUTO_LIST \
- LIST_AMBIGUOUS \
- CHECK_JOBS \
- INC_APPEND_HISTORY \
- HIST_IGNORE_DUPS \
- HIST_IGNORE_SPACE \
- NO_HUP
-
-
-for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do
- eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}'
- eval PR_LIGHT_$color='%{$fg[${(L)color}]%}'
-done
-PR_BOLD="%{$terminfo[bold]%}"
-PR_NO_COLOUR="%{$terminfo[sgr0]%}"
+ EXTENDEDGLOB \
+ BASH_AUTO_LIST \
+ LIST_AMBIGUOUS \
+ CHECK_JOBS \
+ INC_APPEND_HISTORY \
+ HIST_IGNORE_DUPS \
+ HIST_IGNORE_SPACE \
+ NO_HUP
+
HISTFILE=~/.zsh_history
HISTSIZE=50000
SAVEHIST=50000
REPORTTIME=5
-TIMEFMT="$fg[magenta]%J %U user %S sys %P cpu %*E total %M kB max$terminfo[sgr0]"
+TIMEFMT="$fg[magenta]%J %U user %S sys %P cpu %*E total %M MB RSS max$terminfo[sgr0]"
autoload -Uz vcs_info && vcs_info
zstyle ':vcs_info:*' enable git cvs svn hg
function setprompt()
{
- # default: " (%s)-[%b|%a]%u%c-"
- zstyle ':vcs_info:*' actionformats " %s: %b|%a"
- # default: " (%s)-[%b]%u%c-"
- zstyle ':vcs_info:*' formats " %s: %b"
+ # default: " (%s)-[%b|%a]%u%c-"
+ zstyle ':vcs_info:*' actionformats " %s: %b|%a"
+ # default: " (%s)-[%b]%u%c-"
+ zstyle ':vcs_info:*' formats " %s: %b"
- setopt PROMPT_SUBST
- PROMPT='
+ setopt PROMPT_SUBST
+ PROMPT='
%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%})%n@%m%{$reset_color%}$PR_SCREEN$PR_JOBS%{$fg_bold[yellow]%}${vcs_info_msg_0_}%{$reset_color%} %{$fg_bold[blue]%}%~%{$reset_color%}
$PR_EXIT%# '
}
setprompt
# Obtain the autofs mountpoints
-autofs_mp=""
-[ -r /etc/auto.master ] && autofs_mp=$(/bin/grep -e "^/" /etc/auto.master)
+autofs_mp=()
+[ -r /etc/auto.master ] && autofs_mp=($(/bin/grep -e "^/" /etc/auto.master | cut -f1))
function precmd ()
{
- PR_EXIT="%{$fg_bold[red]%}%(?..[%?] )%{$reset_color%}"
-
- # autofs always complains not being able to mount .hg/ and the like
- if echo "$autofs_mp" | /bin/grep -qe "^$PWD\s"; then
- vcs_info_msg_0_="[autofs]"
- else
- vcs_info
- fi
-
- PR_SCREEN=""
- if [[ -n "${WINDOW}" ]]; then
- PR_SCREEN=" S:${WINDOW}"
- fi
-
- PR_JOBS=""
- if [[ $(jobs | wc -l) -gt 0 ]]; then
- PR_JOBS=" J:%j"
- fi
+ PR_EXIT="%{$fg_bold[red]%}%(?..[%?] )%{$reset_color%}"
+
+ # Check whether current directory is a subdirectory of an autofs mountpoint
+ local parent="0"
+ vcs_info_msg_0_=""
+ for mp in ${autofs_mp}; do
+ # A parent directory is an autofs mount point
+ if echo "$PWD" | /bin/grep -q $mp; then
+ parent="1"
+ # Even equal!
+ if echo "$mp" | /bin/grep -q $PWD; then
+ vcs_info_msg_0_=" [autofs]"
+ fi
+ break;
+ fi
+ done
+
+ if [ -z "$vcs_info_msg_0_" ]; then
+ if [ "$parent" = "1" ]; then
+ # svn and hg cause complaints of autofs that .svn and .hg is no mount point
+ zstyle ':vcs_info:*' enable git cvs
+ else
+ zstyle ':vcs_info:*' enable git cvs svn hg
+ fi
+ vcs_info
+ fi
+
+ PR_SCREEN=""
+ if [[ -n "${WINDOW}" ]]; then
+ PR_SCREEN=" S:${WINDOW}"
+ fi
+
+ PR_JOBS=""
+ if [[ $(jobs | wc -l) -gt 0 ]]; then
+ PR_JOBS=" J:%j"
+ fi
}
-
-
-