# sample by Peter Palfrader: http://svn.noreply.org/svn/weaselutils/trunk/dotfiles/zshrc [ -r /etc/zsh/zprofile ] && source /etc/zsh/zprofile [ -r $HOME/.profile ] && source $HOME/.profile bindkey -e zstyle :compinstall filename "$HOME/.zshrc" autoload -U compinit promptinit compinit zstyle ':completion::complete:*' use-cache 1 autoload colors zsh/terminfo if [[ "$terminfo[colors]" -ge 8 ]]; then colors fi eval `dircolors` LS_COLORS="${LS_COLORS}*.divx=01;35:" zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} zstyle ':completion:*' menu select zmodload -i zsh/complist # bind special keys according to readline configuration #eval "$(sed -n 's/^/bindkey /; s/: / /p' /etc/inputrc)" bindkey "\e[1~" beginning-of-line bindkey "\e[4~" end-of-line bindkey "\e[5~" history-search-backward bindkey "\e[6~" history-search-forward bindkey "\e[3~" delete-char bindkey "\e[2~" quoted-insert bindkey "\e[5C" forward-word bindkey "\e[5D" backward-word bindkey "\e\e[C" forward-word bindkey "\e\e[D" backward-word bindkey "\e[1;5C" forward-word bindkey "\e[1;5D" backward-word bindkey "\eOc" forward-word bindkey "\eOd" backward-word bindkey "\e[1;3C" forward-word bindkey "\e[1;3D" backward-word bindkey "\e[8~" end-of-line bindkey "\eOH" beginning-of-line bindkey "\eOF" end-of-line bindkey "\e[H" beginning-of-line bindkey "\e[F" end-of-line bindkey "\e[7~" beginning-of-line bindkey "\e[8~" end-of-line setopt \ 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 MB RSS max$terminfo[sgr0]" # Load starship if exists, and that's it. #if [ $TERM != "linux" ] && type "starship" > /dev/null; then eval "$(starship init zsh)" return #fi # Otherwise, do some homebrewn configuration autoload -Uz vcs_info && vcs_info zstyle ':vcs_info:*' enable git cvs svn hg zstyle ':vcs_info:*' use-prompt-escapes zstyle ':vcs_info:*' max-exports 1 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" 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 | cut -f1)) function precmd () { 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 }