L2 Cache

Behold the power of |!

User Tools

Site Tools


configuration:zsh

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
configuration:zsh [2014/12/25 13:57]
sjorge
configuration:zsh [2017/05/01 18:32] (current)
sjorge [.zshrc]
Line 36: Line 36:
 ## .zshrc ## .zshrc
 # by Jorge Schrauwen <​jorge@blackdot.be>​ # by Jorge Schrauwen <​jorge@blackdot.be>​
-# Version ​20141225015+# Version ​20170501001
 #         ​YYYYMMDD###​ #         ​YYYYMMDD###​
  
Line 43: Line 43:
 # #
 # Change Log # Change Log
 +# - 20170501: --- - disabled auto update
 +# - 20160621: --- - optimizations
 +# - 20160621: fix - if .aliases is missing initial exit indicator was fasle
 +# - 20160320: fix - color ls on SmartOS, drop obd support
 +# - 20160219: fix - fix vncviewer alias
 +# - 20151128: --- - cleanup and removal of old code
 +# - 20151001: fix - support new pkgsrc layout on OSX
 +# - 20141225: new - added '​developer'​ theme (same as dual but with git helpers)
 +# - 20141225: new - switched to promptinit, converted themes and renamed minimal
 +# - 20141225: new - added CMD_SAFE_WRAP (defaults to 1)
 # - 20141225: --- - switch to selective nocorrect/​noglob # - 20141225: --- - switch to selective nocorrect/​noglob
 # - 20141225: new - enable dirstack, enable auto rehash, extra MacOSX helpers # - 20141225: new - enable dirstack, enable auto rehash, extra MacOSX helpers
Line 77: Line 87:
 # {{{ updater # {{{ updater
     NZSHRC="​https://​docu.blackdot.be/​getRaw.php?​onlyCode=true&​id=configuration:​zsh"​     NZSHRC="​https://​docu.blackdot.be/​getRaw.php?​onlyCode=true&​id=configuration:​zsh"​
-    CHECK_UPDATE=1 +    CHECK_UPDATE=0 
-    AUTO_UPDATE=1+    AUTO_UPDATE=0
 # }}} # }}}
  
 # {{{ options # {{{ options
     ## change directory ​     ## change directory ​
-    setopt auto_cd ​     # drop cd+    setopt auto_cd
     ​     ​
     ## enable command correction     ## enable command correction
-    ​#setopt correct +    setopt correct 
-    setopt correct_all  ​+    ​#setopt correct_all  ​
  
     ## prevent file overwrite     ## prevent file overwrite
Line 96: Line 106:
  
     ## superglobs     ## superglobs
-    #setopt extended_glob 
     unsetopt case_glob     unsetopt case_glob
     ​     ​
Line 116: Line 125:
     setopt nohashdirs     setopt nohashdirs
     ​     ​
-    ## dirstack +    ## make some commands safer 
-    ​DIRSTACKSIZE=20 +    ​CMD_SAFE_WRAP=0 
-    setopt ​autopushd pushdsilent pushdtohome pushdminus +    setopt ​mark_dirs
-    setopt pushdignoredups # ignore dups+
  
-    # include local options+    ​## include local options
     [[ -e ~/.zopts ]] && source ~/.zopts     [[ -e ~/.zopts ]] && source ~/.zopts
-# }}} 
- 
-# {{{ prompt 
-    # enable colors module 
-    autoload -U colors && colors 
- 
-    # utf8 checkmarks 
-    PROMPT_CO='​.'​ 
-    PROMPT_CE='​!'​ 
-    case $LANG in *UTF-8) 
-        case $TERM in (xterm*) 
-            if [[ -z $NOFANCY_PROMPT ]] ; then 
-                PROMPT_CO='​✓'​ 
-                PROMPT_CE='​✗'​ 
-            fi 
-        ;; esac 
-    ;; esac 
- 
-    [[ -z $THEME ]] && THEME=minimal 
-    case $THEME in 
-        gentoo) 
-            PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' 
-        ;; 
-        gentoo_server) 
-            PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' 
-        ;; 
-        minimal) 
-            PROMPT=$'​%{$fg_bold[grey]%}-(%{$reset_color%}%{$fg_bold[white]%}%1~%{$reset_color%}%{$fg_bold[grey]%})-[%{$reset_color%}%(?,​%{$fg_bold[green]%}$PROMPT_CO%{$reset_color%},​%{$fg_bold[red]%}$PROMPT_CE%{$reset_color%})%{$fg_bold[grey]%}]-%{$reset_color%}%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%}){%{$reset_color%} ' 
-            RPROMPT=$'​%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%})}%{$reset_color%}%{$fg_bold[grey]%}-(%{$reset_color%}%{$fg_bold[$PROMPT_HOST_COLOR]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%})-%{$reset_color%}'​ 
-        ;; 
-        dual) 
-            PROMPT=$'​%{$fg_bold[grey]%}[%{$fg_bold[$PROMPT_HOST_COLOR]%}%m %{$fg_bold[grey]%}::​ %(!.%{$fg_bold[red]%}.%{$fg_bold[green]%})%n%{$fg_bold[grey]%}][%{$fg_bold[white]%}%~%{$fg_bold[grey]%}]\n[%(?,​%{$fg_bold[green]%}$PROMPT_CO%{$reset_color%},​%{$fg_bold[red]%}$PROMPT_CE%{$reset_color%})%{$fg_bold[grey]%}]%(!.%{$fg_bold[red]%}#​.%{$fg_bold[green]%}$)%{$reset_color%} ' 
-        ;; 
-    esac 
-    unset THEME 
 # }}} # }}}
  
Line 175: Line 148:
     # ignore entries starting with a space     # ignore entries starting with a space
     setopt hist_ignore_space     setopt hist_ignore_space
 +# }}}
 +
 +# {{{ dirstack
 +    DIRSTACKSIZE=20
 +    setopt autopushd pushdsilent pushdtohome pushdminus
 +    setopt pushdignoredups # ignore dups
 # }}} # }}}
  
Line 206: Line 185:
     bindkey "​\e[H"​ beginning-of-line     bindkey "​\e[H"​ beginning-of-line
     bindkey "​\e[F"​ end-of-line     bindkey "​\e[F"​ end-of-line
-# }}} 
- 
-# {{{ auto correction 
-    ## disable auto correct 
-    alias cd='​nocorrect cd' 
-    alias cp='​nocorrect cp' 
-    alias gcc='​nocorrect gcc' 
-    alias grep='​nocorrect grep' 
-    alias ln='​nocorrect ln' 
-    alias man='​nocorrect man' 
-    alias mkdir='​nocorrect mkdir' 
-    alias mv='​nocorrect mv' 
-    alias rm='​nocorrect rm' 
-    ​ 
-    ## disable globbing. 
-    alias find='​noglob find' 
-    alias ftp='​noglob ftp' 
-    alias history='​noglob history'​ 
-    alias locate='​noglob locate'​ 
-    alias rsync='​noglob rsync' 
-    alias scp='​noglob scp' 
-    alias sftp='​noglob sftp' 
-    alias ssh='​noglob sftp' 
-# }}} 
- 
-# {{{ auto completion 
-    ## base 
-    autoload -U compinit && compinit 
- 
-    ## complete from withing word 
-    setopt complete_in_word 
- 
-    ## complete aliases 
-    setopt complete_aliases 
- 
-    ## pretty menu's 
-    zstyle ':​completion:​*'​ menu select=1 
-    zstyle ':​completion:​*'​ list-colors ${(s.:​.)LS_COLORS} 
-    setopt auto_menu ​   # show menu on 2nd <tab> 
-    setopt list_rows_first ​ # use row list if possible 
- 
-    ## Ignore completions for commands that we dont have 
-    zstyle ':​completion:​*:​functions'​ ignored-patterns '​_*'​ 
- 
-    ## enable case-insensitive completion 
-    zstyle ':​completion:​*'​ matcher-list '​m:​{a-zA-Z}={A-Za-z}'​ 
- 
-    ## enable caching 
-    zstyle ':​completion::​complete:​*'​ use-cache on 
-    zstyle ':​completion::​complete:​*'​ cache-path ~/.zcache 
- 
-    ## Prevent re-suggestion 
-    zstyle ':​completion:​*:​rm:​*'​ ignore-line yes 
-    zstyle ':​completion:​*:​scp:​*'​ ignore-line yes 
-    zstyle ':​completion:​*:​ls:​*'​ ignore-line yes 
- 
-    ## enable killall menu 
-    zstyle ':​completion:​*:​processes-names'​ command 'ps -u $(whoami) -o comm=' 
-    zstyle ':​completion:​*:​processes-names'​ menu yes select 
-    zstyle ':​completion:​*:​processes-names'​ force-list always ​   ​ 
- 
-    ## enable kill menu 
-    zstyle ':​completion:​*:​kill:​*'​ command 'ps -u $(whoami) -o pid,​pcpu,​pmem,​cmd'​ 
-    zstyle ':​completion:​*:​*:​kill:​*:​processes'​ list-colors '=(#b) #​([0-9]#​)*=0=01;​32'​ 
-    zstyle ':​completion:​*:​*:​kill:​*'​ menu yes select 
-    zstyle ':​completion:​*:​kill:​*'​ force-list always 
-    zstyle ':​completion:​*:​kill:​*'​ insert-ids single 
- 
-    ## enable make completion 
-    compile=(all clean compile disclean install remove uninstall) 
-    compctl -k compile make 
- 
-    ## ssh host completion 
-    if [ ! -f ~/​.ssh/​config ]; then 
-        [ -f ~/​.ssh/​known_hosts ] && rm ~/​.ssh/​known_hosts 
-        mkdir -p ~/.ssh 
-        echo "​HashKnownHosts no" >>! ~/​.ssh/​config 
-        chmod 0600 ~/​.ssh/​config 
-    fi 
-    zstyle -e ':​completion::​*:​ssh:​*:​hosts'​ hosts '​reply=(${=${${(f)"​$(cat {/​etc/​ssh_,​~/​.ssh/​known_}hosts(|2)(N) /​dev/​null)"​}%%[#​ ]*}//,/ })' 
-    zstyle ':​completion:​*:​ssh:​*'​ group-order hosts-domain hosts-host users hosts-ipaddr 
- 
-    ## ssh user completion cleanup 
-    zstyle ':​completion:​*:​ssh:​*:​users'​ ignored-patterns \ 
-        adm alias apache at bin cron cyrus daemon distcache exim ftp games gdm \ 
-        guest gopher haldaemon halt mail man messagebus mysql named news nobody nut \ 
-        nfsnobody lp operator portage postfix postgres postmaster qmaild qmaill qmailp \ 
-        qmailq qmailr qmails rpmbuild rpc rpcuser shutdown smmsp squid sshd sync saslauth \ 
-        uucp vcsa vpopmail xfs  
 # }}} # }}}
  
Line 346: Line 236:
             sed -i -e "/​$1/​d"​ $HOME/​.ssh/​known_hosts             sed -i -e "/​$1/​d"​ $HOME/​.ssh/​known_hosts
         fi         fi
 +    }
 +    ​
 +    # zshenable helper
 +    zshenable() {
 +        case $OSTYPE in 
 +            linux*|darwin*|openbsd*)
 +                chsh -s $(which zsh)
 +            ;;
 +            solaris*)
 +                pfexec /​usr/​sbin/​usermod -s $(which zsh) $(id -n -u)
 +            ;;
 +            *)
 +                echo "No zshenable implemented for $OSTYPE."​
 +            ;;
 +        esac
 +    }
 +    ​
 +    # zshdisable helper
 +    zshdisable() {
 +        case $OSTYPE in 
 +            linux*|darwin*|openbsd*)
 +                chsh -s $(which bash)
 +            ;;
 +            solaris*)
 +                pfexec /​usr/​sbin/​usermod -s $(which bash) $(id -n -u)
 +            ;;
 +            *)
 +                echo "No zshdisable implemented for $OSTYPE."​
 +            ;;
 +        esac
     }     }
 # }}} # }}}
  
-# {{{ variables +# {{{ advanced 
-    # preferences +    ## cleanup aliases 
-    ​which nano &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​nano'​ +    ​noglob unalias ​-m cd cp ls mv rm 
-    which vim &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​vim'​ +
-    export PAGER='​less'​ +
-# }}}+
  
-# {{{ advanced 
     ## fix url quote'​s     ## fix url quote'​s
     if [[ ${ZSH_VERSION//​\./​} -ge 420 ]] ; then     if [[ ${ZSH_VERSION//​\./​} -ge 420 ]] ; then
Line 371: Line 287:
   ​   ​
         # colorization         # colorization
 +        eval $(dircolors)
         [ -f /​etc/​DIR_COLORS ] && eval $(dircolors -b /​etc/​DIR_COLORS)         [ -f /​etc/​DIR_COLORS ] && eval $(dircolors -b /​etc/​DIR_COLORS)
         [ -f ~/​.dir_colors ] && eval $(dircolors -b ~/​.dir_colors)         [ -f ~/​.dir_colors ] && eval $(dircolors -b ~/​.dir_colors)
  
-        alias ls="${aliases[ls]:​-ls} ​--group-directories-first"​+        alias ls="ls --group-directories-first"​
         if [ -n "​${LS_COLORS}"​ ]; then         if [ -n "​${LS_COLORS}"​ ]; then
             export ZLSCOLORS="​${LS_COLORS}"​             export ZLSCOLORS="​${LS_COLORS}"​
Line 382: Line 299:
   ​   ​
         # LX BrandZ         # LX BrandZ
-        [ -d /native/​usr/​bin ​&& ​export PATH=$PATH:/​native/​usr/​bin +        ​if [ -d /native ]; then 
-        [ -d /​native/​sbin ] && [[ -n $WANT_SBIN ]] && ​export PATH=$PATH:/​native/​sbin +            ​export PATH=$PATH:/​native/​usr/​bin 
-        [ -d /​native/​usr/​sbin ] && [[ -n $WANT_SBIN ]] && ​export PATH=$PATH:/​native/​usr/​sbin+            ​if ​[ -n $WANT_SBIN ]; then 
 +                ​export PATH=$PATH:/​native/​sbin 
 +                export PATH=$PATH:/​native/​usr/​sbin 
 +            fi 
 +        fi
     ;; esac     ;; esac
     case $OSTYPE in solaris*)     case $OSTYPE in solaris*)
Line 395: Line 316:
         # add /usr/sbin if wanted         # add /usr/sbin if wanted
         [ $(echo $PATH | grep -c '/​usr/​sbin:'​) ​ -eq 0 ] && ​         [ $(echo $PATH | grep -c '/​usr/​sbin:'​) ​ -eq 0 ] && ​
-            ​[[ -n $WANT_SBIN ​]] && export PATH=$PATH:/​usr/​sbin+            [ -n $WANT_SBIN ] && export PATH=$PATH:/​usr/​sbin
  
         # check for gnu         # check for gnu
         export PATH=$(echo $PATH | /bin/sed -r '​s#:/​usr/​gnu/​s?​bin##​g'​)         export PATH=$(echo $PATH | /bin/sed -r '​s#:/​usr/​gnu/​s?​bin##​g'​)
-        [ -d /usr/gnu/bin && ​export PATH=$PATH:/​usr/​gnu/​bin +        ​if [ -d /usr/gnu ]; then 
-        [ -d /​usr/​gnu/​sbin ] && [[ -n $WANT_SBIN ​]] && export PATH=$PATH:/​usr/​gnu/​sbin +            ​export PATH=$PATH:/​usr/​gnu/​bin 
-   +            [ -n $WANT_SBIN ] && export PATH=$PATH:/​usr/​gnu/​sbin 
-        check for obd repository (omnios) + 
-        ​export PATH=$(echo $PATH | /​bin/​sed ​-r 's#/opt/obd/​s?​bin:##​g'​) +            selective gnu / colorization 
-        export MANPATH=$(echo $MANPATH | /​bin/​sed ​-r 's#/opt/obd/share/man:##g') +            ​[ ​-/usr/gnu/​bin/​sed ​] && alias sed='/usr/gnu/bin/sed
-        [ -/opt/obd/bin ] && ​export PATH=$PATH:/opt/obd/bin +            [ -/usr/gnu/bin/diff ] && ​alias diff='/usr/gnu/bin/diff' 
-        [ -/opt/obd/sbin ] && ​[[ -n $WANT_SBIN ]] && export PATH=$PATH:/opt/obd/sbin +            [ -/usr/gnu/bin/​tar ​] && ​alias tar='/usr/gnu/bin/​tar'​ 
-        [ -/opt/obd/share/man ] && ​export MANPATH=$MANPATH:/opt/obd/share/man+            [ -/usr/gnu/bin/rm ] && ​alias rm='/usr/gnu/bin/rm' 
 +        fi
   ​   ​
         # check for pkgsrc (smartos)         # check for pkgsrc (smartos)
         export PATH=$(echo $PATH | /bin/sed -r '​s#/​opt/​local/​s?​bin:##​g'​)         export PATH=$(echo $PATH | /bin/sed -r '​s#/​opt/​local/​s?​bin:##​g'​)
-        [ -d /opt/local/bin && ​export ​PATH=/​opt/​local/​bin:$PATH +        ​export MANPATH=$(echo $MANPATH | /bin/sed -r '​s#/​opt/​local/​man:##​g'​) 
-        [ -d /opt/local/sbin ] && [[ -n $WANT_SBIN ​]] && export PATH=/​opt/​local/​sbin:​$PATH +        if [ -d /opt/local ]; then 
-        ​[ -d /​opt/​local/​man ] && export MANPATH=/​opt/​local/​man:​$MANPATH+            ​export ​MANPATH=/​opt/​local/​man:$MANPATH 
 +            export ​PATH=/opt/local/bin:$PATH 
 +            ​[ -n $WANT_SBIN ] && export PATH=/​opt/​local/​sbin:​$PATH 
 +        ​fi
  
         # check for omniti repository (omnios)         # check for omniti repository (omnios)
         export PATH=$(echo $PATH | /bin/sed -r '​s#/​opt/​omni/​s?​bin:##​g'​)         export PATH=$(echo $PATH | /bin/sed -r '​s#/​opt/​omni/​s?​bin:##​g'​)
         export MANPATH=$(echo $MANPATH | /bin/sed -r '​s#/​opt/​omni/​share/​man:##​g'​)         export MANPATH=$(echo $MANPATH | /bin/sed -r '​s#/​opt/​omni/​share/​man:##​g'​)
-        [ -d /opt/omni/​bin ​&& export PATH=$PATH:/​opt/​omni/​bin +        ​if [ -d /opt/local ]; then 
-        [ -d /​opt/​omni/​sbin ] && [[ -n $WANT_SBIN ]] && export PATH=$PATH:/​opt/​omni/​sbin +            export MANPATH=$MANPATH:/​opt/​omni/​share/​man 
-        [ -d /​opt/​omni/​share/​man ] && ​export MANPATH=$MANPATH:/​opt/​omni/​share/​man +            export PATH=$PATH:/​opt/omni/bin 
- +            [ -n $WANT_SBIN ​] && export PATH=$PATH:/​opt/omni/sbin 
-        # check for sfw +        fi
-        ​export PATH=$(echo ​$PATH | /bin/sed -r 's#:/usr/sfw/s?bin##g') +
-        [ -d /​usr/​sfw/​bin ​] && export PATH=$PATH:/​usr/sfw/bin+
  
         # check for local         # check for local
         export PATH=$(echo $PATH | /bin/sed -r '​s#/​usr/​local/​s?​bin:##​g'​)         export PATH=$(echo $PATH | /bin/sed -r '​s#/​usr/​local/​s?​bin:##​g'​)
-        [ -d /usr/local/bin && ​export PATH=/​usr/​local/​bin:​$PATH +        ​if [ -d /usr/local ]; then 
-        [ -d /​usr/​local/​sbin ] && [[ -n $WANT_SBIN ​]] && export PATH=/​usr/​local/​sbin:​$PATH+            ​export PATH=/​usr/​local/​bin:​$PATH 
 +            [ -n $WANT_SBIN ] && export PATH=/​usr/​local/​sbin:​$PATH 
 +        fi
  
         # check for opencsw         # check for opencsw
         export PATH=$(echo $PATH | /bin/sed -r '​s#:/​opt/​csw/​s?​bin##​g'​)         export PATH=$(echo $PATH | /bin/sed -r '​s#:/​opt/​csw/​s?​bin##​g'​)
-        [ -d /opt/csw/bin && ​export PATH=$PATH:/​opt/​csw/​gnu:/​opt/​csw/​bin +        ​if [ -d /opt/csw ]; then 
-        [ -d /​opt/​csw/​sbin ] && [[ -n $WANT_SBIN ​]] && export PATH=$PATH:/​opt/​csw/​sbin+            ​export PATH=$PATH:/​opt/​csw/​gnu:/​opt/​csw/​bin 
 +            [ -n $WANT_SBIN ] && export PATH=$PATH:/​opt/​csw/​sbin 
 +        fi
  
         # colorization         # colorization
-        ​[ "$(which ls)" = "/usr/bin/ls" ] && ​alias ls='ls --color'​ +        ​case $(which ls) in 
- +          ​/opt/local/bin/lsalias ls='ls --color' ​;; 
-        # selective gnu / colorization +          /usr/bin/lsalias ls='ls --color'​ ;; 
-        [ "​$(which ls)" = "/usr/gnu/bin/ls" ] && ​alias ls='/​usr/​gnu/​bin/​ls --color=auto'​ +          ​/​usr/​gnu/​bin/​ls) ls='ls --color=auto' ​;; 
-        ​[ -e /usr/gnu/​bin/​grep ​] && ​alias grep='/​usr/​gnu/​bin/​grep --color=auto'​ +        ​esac 
-        [ -e /​usr/​gnu/​bin/​sed ] && ​alias sed='/​usr/​gnu/​bin/​sed'​ +        case $(which grep) in 
-        [ -e /​usr/​gnu/​bin/​diff ] && alias diff='/​usr/​gnu/​bin/​diff'​ +          ​/opt/local/bin/grepalias grep='​grep --color=auto' ​;; 
-        [ -e /​usr/​gnu/​bin/​tar ] && alias tar='/​usr/​gnu/​bin/​tar'​ +          /​usr/​gnu/​bin/​grep) alias grep='grep --color=auto' ​;; 
-        ​[ -e /​usr/​gnu/​bin/​rm ] && alias rm='/​usr/​gnu/​bin/​rm'​+        ​esac
     ;; esac     ;; esac
     case $OSTYPE in openbsd*)     case $OSTYPE in openbsd*)
Line 475: Line 402:
   ​   ​
         # pkgsrc         # pkgsrc
-        if [ -e /​usr/​pkg/​bin/​pkgin ]; then+        if [ -e /​opt/​pkg/​bin/​pkgin ]; then 
 +            export PATH=/​opt/​pkg/​gnu/​bin:/​opt/​pkg/​bin:/​opt/​pkg/​sbin:​$PATH 
 +            export MANPATH=/​opt/​pkg/​man:​$MANPATH 
 +            if [ -f ~/​.dir_colors ]; then 
 +                eval $(dircolors -b ~/​.dir_colors) 
 +                export ZLSCOLORS="​${LS_COLORS}"​ 
 +                unalias ls &> /dev/null 
 +                alias ls='ls --color=auto'​ 
 +            fi 
 +            alias pkgin='​sudo pkgin'​ 
 +        elif [ -e /​usr/​pkg/​bin/​pkgin ]; then
             export PATH=/​usr/​pkg/​gnu/​bin:/​usr/​pkg/​bin:/​usr/​pkg/​sbin:​$PATH             export PATH=/​usr/​pkg/​gnu/​bin:/​usr/​pkg/​bin:/​usr/​pkg/​sbin:​$PATH
             export MANPATH=/​usr/​pkg/​man:​$MANPATH             export MANPATH=/​usr/​pkg/​man:​$MANPATH
Line 487: Line 424:
         fi         fi
         ​         ​
-        ## helpers +        ## helpers ​        
-        function trash() { +        function ​vnc() {
-            local trash_dir="​${HOME}/​.Trash"​ +
-            local temp_ifs="​$IFS"​ +
-            IFS=$'​\n'​ +
-            for item in "​$@";​ do +
-                if [[ -e "​$item"​ ]]; then +
-                    item_name="​$(basename $item)"​ +
-                    if [[ -e "​${trash_dir}/​${item_name}"​ ]]; then +
-                        mv -f "​$item"​ "​${trash_dir}/​${item_name} $(date "​+%H-%M-%S"​)"​ +
-                    else +
-                        mv -f "​$item"​ "​${trash_dir}/"​ +
-                    fi +
-                fi +
-            done +
-     IFS=$temp_ifs +
-        } +
-         +
-        function ​vncviewer() {+
             which vncviewer &> /dev/null             which vncviewer &> /dev/null
             if [ $? -eq 0 ]; then             if [ $? -eq 0 ]; then
Line 514: Line 434:
         }         }
     ;; esac     ;; esac
-    ​ 
-    # zsh shortcuts 
-    case $OSTYPE in linux*|darwin*|openbsd*) 
-        alias zshenable='​chsh -s $(which zsh)' 
-        alias zshdisable='​chsh -s $(which bash)' 
-    ;; esac  
-    case $OSTYPE in solaris*) 
-        alias zshenable='​pfexec /​usr/​sbin/​usermod -s $(which zsh) $(id -n -u)' 
-        alias zshdisable='​pfexec /​usr/​sbin/​usermod -s $(which bash) $(id -n -u)' 
-    ;; esac  
  
     ## host specific     ## host specific
     case ${HOST:r} in     case ${HOST:r} in
-        (axion*|tachyon*) +        (axion*|tachyon*|photon*)
-            # add a little info banner +
-            if [[ $SHLVL -eq 1 ]] ; then +
-                clear +
-                echo +
-                print -P "​\e[1;​33m Welcome to: \e[1;​34m%m"​ +
-                print -P "​\e[1;​33m Running: \e[1;​34m`uname -srm`\e[1;​33m on \e[1;​34m%l"​ +
-                print -P "​\e[1;​33m It is:\e[1;34m %D{%r} \e[1;33m on \e[1;​34m%D{%A %b %f %G}" +
-                echo +
-                tput sgr0 +
-            fi +
             # proper UTF-8             # proper UTF-8
             export LANG=en_US.UTF-8             export LANG=en_US.UTF-8
Line 545: Line 444:
             PROMPT_HOST_COLOR=green             PROMPT_HOST_COLOR=green
         ;;         ;;
-        (artemis*|monolith*)+        (exosphere*|crust*)
             PROMPT_HOST_COLOR=red             PROMPT_HOST_COLOR=red
         ;;         ;;
Line 554: Line 453:
     esac     esac
   ​   ​
-  ​## local configuration +    ​## local configuration 
-  [[ -e ~/.zlocal ]] && source ~/.zlocal+    [[ -e ~/.zlocal ]] && source ~/.zlocal 
 +# }}} 
 + 
 +# {{{ auto completion 
 +    ## base 
 +    autoload -U compinit && compinit 
 + 
 +    ## complete from withing word 
 +    setopt complete_in_word 
 +    setopt always_to_end 
 + 
 +    ## complete aliases 
 +    setopt complete_aliases 
 + 
 +    ## enable caching 
 +    zstyle ':​completion::​complete:​*'​ use-cache on 
 +    zstyle ':​completion::​complete:​*'​ cache-path ~/.zcache 
 +     
 +    ## enable case-insensitive completion 
 +    zstyle ':​completion:​*'​ matcher-list '​m:​{a-zA-Z}={A-Za-z}'​ '​r:​|[._-]=* r:|=*' 'l:|=* r:​|=*'​ 
 +     
 +    ## various tweaks 
 +    zstyle '​*'​ single-ignored show 
 +     
 +    zstyle ':​completion:​*'​ completer _complete _match _approximate 
 +    zstyle ':​completion:​*:​match:​*'​ original only 
 +    zstyle ':​completion:​*:​approximate:​*'​ max-errors 1 numeric 
 +     
 +    zstyle -e ':​completion:​*:​approximate:​*'​ max-errors '​reply=($((($#​PREFIX+$#​SUFFIX)/​3))numeric)'​ 
 +     
 +    ## history 
 +    zstyle ':​completion:​*:​history-words'​ stop yes 
 +    zstyle ':​completion:​*:​history-words'​ remove-all-dups yes 
 +    zstyle ':​completion:​*:​history-words'​ list false 
 +    zstyle ':​completion:​*:​history-words'​ menu yes 
 +     
 +    ## directories 
 +    zstyle ':​completion:​*:​default'​ list-colors ${(s.:​.)LS_COLORS} 
 +    zstyle ':​completion:​*:​*:​cd:​*'​ tag-order local-directories directory-stack path-directories 
 +    zstyle ':​completion:​*:​*:​cd:​*:​directory-stack'​ menu yes select 
 +    zstyle ':​completion:​*:​-tilde-:​*'​ group-order '​named-directories'​ '​path-directories'​ '​users'​ '​expand'​ 
 +    zstyle ':​completion:​*'​ squeeze-slashes true 
 +     
 +    ## ignore completions for commands that we dont have 
 +    zstyle ':​completion:​*:​functions'​ ignored-patterns '​(_*|pre(cmd|exec))'​ 
 +     
 +    ## array completion 
 +    zstyle ':​completion:​*:​*:​-subscript-:​*'​ tag-order indexes parameters 
 +     
 +    ## group matches and describe 
 +    zstyle ':​completion:​*:​*:​*:​*:​*'​ menu select 
 +    zstyle ':​completion:​*:​matches'​ group '​yes'​ 
 +    zstyle ':​completion:​*:​options'​ description '​yes'​ 
 +    zstyle ':​completion:​*:​options'​ auto-description '​%d'​ 
 +    zstyle ':​completion:​*:​corrections'​ format ' %F{green}-- %d (errors: %e) --%f'​ 
 +    zstyle ':​completion:​*:​descriptions'​ format ' %F{yellow}-- %d --%f'​ 
 +    zstyle ':​completion:​*:​messages'​ format ' %F{purple} -- %d --%f'​ 
 +    zstyle ':​completion:​*:​warnings'​ format ' %F{red}-- no matches found --%f'​ 
 +    zstyle ':​completion:​*:​default'​ list-prompt '%S%M matches%s'​ 
 +    zstyle ':​completion:​*'​ format ' %F{yellow}-- %d --%f'​ 
 +    zstyle ':​completion:​*'​ group-name ''​ 
 +    zstyle ':​completion:​*'​ verbose yes 
 +     
 +    ## pretty menu'​s 
 +    zstyle ':​completion:​*'​ menu select=1 
 +    zstyle ':​completion:​*'​ list-colors ${(s.:​.)LS_COLORS} 
 +    setopt auto_menu ​   # show menu on 2nd <​tab>​ 
 +    setopt list_rows_first ​ # use row list if possible 
 + 
 +    ## prevent re-suggestion 
 +    zstyle ':​completion:​*:​(scp|rm|kill|diff):​*'​ ignore-line yes 
 +    #zstyle ':​completion:​*:​rm:​*'​ file-patterns '​*:​all-files'​ 
 + 
 +    ## enable killall menu (linux) 
 +    zstyle ':​completion:​*:​processes-names'​ command 'ps -u $(whoami) -o comm='​ 
 +    zstyle ':​completion:​*:​processes-names'​ menu yes select 
 +    zstyle ':​completion:​*:​processes-names'​ force-list always ​    
 + 
 +    ## enable kill menu (linux) ​   
 +    case $OSTYPE in  
 +        linux*|darwin*|openbsd*) 
 +            if [ $(id -u) -eq 0 ]; then 
 +                zstyle ':​completion:​*:​*:​*:​*:​processes'​ command 'ps -A -o pid,​user,​pcpu,​pmem,​args -w' 
 +            else 
 +                zstyle ':​completion:​*:​*:​*:​*:​processes'​ command 'ps -u $(whoami) -o pid,​user,​pcpu,​pmem,​args -w' 
 +            fi 
 +        ;; 
 +        solaris*) 
 +            if [ $(id -u) -eq 0 ]; then 
 +                zstyle ':​completion:​*:​*:​*:​*:​processes'​ command 'ps -A -o pid,​user,​pcpu,​pmem,​args'​ 
 +            else 
 +                zstyle ':​completion:​*:​*:​*:​*:​processes'​ command 'ps -u $(whoami) -o pid,​user,​pcpu,​pmem,​args'​ 
 +            fi 
 +        ;; 
 +    esac 
 +    zstyle ':​completion:​*:​*:​kill:​*:​processes'​ list-colors '=(#b) #​([0-9]#​)*=0=01;​32'​ 
 +    zstyle ':​completion:​*:​*:​kill:​*'​ menu yes select 
 +    zstyle ':​completion:​*:​*:​kill:​*'​ force-list always 
 +    zstyle ':​completion:​*:​*:​kill:​*'​ insert-ids single 
 +     
 +    ## simple pargs complete 
 +    case $OSTYPE in  
 +        solaris*) 
 +            compdef _pids pargs 
 +            zstyle ':​completion:​*:​*:​pargs:​*:​processes'​ list-colors '=(#b) #​([0-9]#​)*=0=01;​32'​ 
 +            zstyle ':​completion:​*:​*:​pargs:​*'​ menu yes select 
 +            zstyle ':​completion:​*:​*:​pargs:​*'​ force-list always 
 +            zstyle ':​completion:​*:​*:​pargs:​*'​ insert-ids single 
 +        ;; 
 +    esac 
 +     
 +    ## man pages 
 +    zstyle ':​completion:​*:​manuals'​ separate-sections true 
 +    zstyle ':​completion:​*:​manuals.(^1*)'​ insert-sections true 
 + 
 +    ## enable make completion 
 +    compile=(all clean compile disclean install remove uninstall) 
 +    compctl -k compile make 
 +     
 +    ## user completion cleanup 
 +    zstyle ':​completion:​*:​*:​*:​users'​ ignored-patterns \ 
 +        adm amanda apache avahi backup beaglidx bin cacti canna clamav daemon \ 
 +        dladm dbus distcache dovecot fax ftp games gdm gkrellmd gopher gnats \ 
 +        hacluster haldaemon halt hsqldb ident junkbust ldap lp irc list libuuid \ 
 +        listen mdns mail mailman mailnull mldonkey mysql man messagebus \ 
 +        netadm netcfg nagios noaccess nobody4 nuucp \ 
 +        named netdump news nfsnobody nobody nscd ntp nut nx openvpn openldap \ 
 +        operator pcap pkg5srv postfix postgres proxy privoxy pulse pvm quagga radvd \ 
 +        rpc rpcuser rpm shutdown statd squid sshd sync sys syslog uucp vcsa \ 
 +        smmsp svctag upnp unknown webservd www-data xfs xvm zfssnap '​_*'​ 
 +         
 +    ## hostname completion 
 +    if [ ! -f ~/​.ssh/​config ]; then 
 +        [ -f ~/​.ssh/​known_hosts ] && rm ~/​.ssh/​known_hosts 
 +        mkdir -p ~/.ssh 
 +        echo "​HashKnownHosts no" >>! ~/​.ssh/​config 
 +        chmod 0600 ~/​.ssh/​config 
 +    fi 
 +    zstyle -e ':​completion:​*:​hosts'​ hosts '​reply=( 
 +        ${=${=${=${${(f)"​$(cat {/​etc/​ssh_,​~/​.ssh/​known_}hosts(|2)(N) 2>/​dev/​null)"​}%%[#​| ]*}//​\]:​[0-9]*/​ }//,/ }//\[/ } 
 +        ${=${(f)"​$(cat /​etc/​hosts(|)(N) <<​(ypcat hosts 2>/​dev/​null))"​}%%\#​*} 
 +        ${=${${${${(@M)${(f)"​$(cat ~/​.ssh/​config 2>/​dev/​null)"​}:#​Host *}#Host }:#​*\**}:#​*\?​*}} 
 +    )' 
 + 
 +    ## ssh/​scp/​rsync 
 +    zstyle ':​completion:​*:​(scp|rsync):​*'​ tag-order '​hosts:​-host:​host hosts:​-domain:​domain hosts:​-ipaddr:​ip\ address *' 
 +    zstyle ':​completion:​*:​(scp|rsync):​*'​ group-order users files all-files hosts-domain hosts-host hosts-ipaddr 
 +    zstyle ':​completion:​*:​ssh:​*'​ tag-order '​hosts:​-host:​host hosts:​-domain:​domain hosts:​-ipaddr:​ip\ address *' 
 +    zstyle ':​completion:​*:​ssh:​*'​ group-order users hosts-domain hosts-host users hosts-ipaddr 
 +    zstyle ':​completion:​*:​(ssh|scp|rsync):​*:​hosts-host'​ ignored-patterns '​*(.|:​)*'​ loopback ip6-loopback localhost ip6-localhost ip6-allnodes ip6-allrouters ip6-localnet ip6-mcastprefix broadcasthost 
 +    zstyle ':​completion:​*:​(ssh|scp|rsync):​*:​hosts-domain'​ ignored-patterns '<​->​.<​->​.<​->​.<​->'​ '​^[-[:​alnum:​]]##​(.[-[:​alnum:​]]##​)##'​ '​*@*'​ 
 +    zstyle ':​completion:​*:​(ssh|scp|rsync):​*:​hosts-ipaddr'​ ignored-patterns '​^(<​->​.<​->​.<​->​.<​->​|(|::​)([[:​xdigit:​].]##:​(#​c,​2))##​(|%*))'​ '​127.0.0.<​->'​ '​255.255.255.255'​ '::​1'​ '​fe80::​*'​ '​fe00::​*'​ '​ff00::​*'​ '​ff02::​*'​ 
 +# }}} 
 + 
 +# {{{ auto correction 
 +    ## disable auto correct 
 +    alias cd='​nocorrect cd' 
 +    alias cp='​nocorrect cp' 
 +    alias gcc='​nocorrect gcc' 
 +    alias grep='​nocorrect grep'​ 
 +    alias ln='​nocorrect ln' 
 +    alias man='​nocorrect man' 
 +    alias mkdir='​nocorrect mkdir'​ 
 +    alias mv='​nocorrect mv' 
 +    alias rm="​nocorrect ${aliases[rm]:​-rm}"​ 
 +    which sshpass &> /dev/null ; [ $? -eq 0 ] && alias sshpass='​nocorrect sshpass'​ 
 +     
 +    ## disable globbing. 
 +    alias find='​noglob find'​ 
 +    alias ftp='​noglob ftp' 
 +    alias history='​noglob history'​ 
 +    alias locate='​noglob locate'​ 
 +    alias rsync='​noglob rsync'​ 
 +    alias scp='​noglob scp' 
 +    alias sftp='​noglob sftp'​ 
 +    alias ssh='​noglob ssh' 
 +# }}} 
 + 
 +# {{{ safe command wrap 
 +    if [ ${CMD_SAFE_WRAP} -gt 0 ]; then 
 +        alias rm="​${aliases[rm]:​-rm} -i" 
 +        alias mv="​${aliases[mv]:​-mv} -i" 
 +        alias cp="​${aliases[cp]:​-cp} -i" 
 +        alias ln="​${aliases[ln]:​-ln} -i" 
 +        alias mkdir="​${aliases[mkdir]:​-mkdir} -p" 
 +    fi 
 +# }}} 
 + 
 +# {{{ prompt 
 +    ## enable colors and prompt module 
 +    autoload -U colors && colors 
 +    autoload -Uz promptinit && promptinit 
 + 
 +    ## checkmarks 
 +    PROMPT_CO='​.'​ 
 +    PROMPT_CE='​!'​ 
 + 
 +    ## create themes 
 +    prompt_gentoo_setup() { 
 +        PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' 
 +        RPROMPT=''​ 
 +    } 
 +    prompt_themes=($prompt_themes gentoo) 
 +     
 +    prompt_gentoo_server_setup() { 
 +        PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' 
 +        RPROMPT=''​ 
 +    } 
 +    prompt_themes=($prompt_themes gentoo_server) 
 + 
 +    prompt_compact_setup() { 
 +        PROMPT=$'​%{$fg_bold[grey]%}-(%{$reset_color%}%{$fg_bold[white]%}%1~%{$reset_color%}%{$fg_bold[grey]%})-[%{$reset_color%}%(?,​%{$fg_bold[green]%}$PROMPT_CO%{$reset_color%},​%{$fg_bold[red]%}$PROMPT_CE%{$reset_color%})%{$fg_bold[grey]%}]-%{$reset_color%}%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%}){%{$reset_color%} ' 
 +        RPROMPT=$'​%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%})}%{$reset_color%}%{$fg_bold[grey]%}-(%{$reset_color%}%{$fg_bold[$PROMPT_HOST_COLOR]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%})-%{$reset_color%}'​ 
 +    } 
 +    prompt_themes=($prompt_themes compact) 
 +     
 +    prompt_dual_setup() { 
 +        PROMPT=$'​%{$fg_bold[grey]%}[%{$fg_bold[$PROMPT_HOST_COLOR]%}%m %{$fg_bold[grey]%}::​ %(!.%{$fg_bold[red]%}.%{$fg_bold[green]%})%n%{$fg_bold[grey]%}][%{$fg_bold[white]%}%~%{$fg_bold[grey]%}]\n[%(?,​%{$fg_bold[green]%}$PROMPT_CO%{$reset_color%},​%{$fg_bold[red]%}$PROMPT_CE%{$reset_color%})%{$fg_bold[grey]%}]%(!.%{$fg_bold[red]%}#​.%{$fg_bold[green]%}$)%{$reset_color%} ' 
 +        RPROMPT=''​ 
 +    }    
 +    prompt_themes=($prompt_themes dual) 
 +     
 +    prompt_developer_setup() { 
 +        _developer_git() {  
 +            git status 2> /dev/null > /dev/null 
 +            if [ $? -eq 0 ]; then 
 +                BRANCH=${$(git symbolic-ref HEAD 2> /​dev/​null)#​refs/​heads/​} 
 +                if [[ -n $BRANCH ]]; then 
 +                    STATUS=$(git status --porcelain 2> /dev/null | tail -n1) 
 +                    if [[ -n $STATUS ]]; then 
 +                        git_color=$fg_bold[red] 
 +                    else 
 +                        git_color=$fg_bold[green] 
 +                    fi 
 +                    echo "​%{$fg_bold[grey]%} :: %{$fg_bold[white]%}${BRANCH}%{${git_color}#​%{$fg_bold[grey]%}"​ 
 +                fi 
 +            fi 
 +        } 
 +     
 +        PROMPT=$'​%{$fg_bold[grey]%}[%{$fg_bold[$PROMPT_HOST_COLOR]%}%m %{$fg_bold[grey]%}::​ %(!.%{$fg_bold[red]%}.%{$fg_bold[green]%})%n%{$fg_bold[grey]%}][%{$fg_bold[white]%}%~%{$fg_bold[grey]%}$(_developer_git)]\n[%(?,​%{$fg_bold[green]%}$PROMPT_CO%{$reset_color%},​%{$fg_bold[red]%}$PROMPT_CE%{$reset_color%})%{$fg_bold[grey]%}]%(!.%{$fg_bold[red]%}#​.%{$fg_bold[green]%}$)%{$reset_color%} ' 
 +        RPROMPT=''​ 
 +    }    
 +    prompt_themes=($prompt_themes developer) 
 +     
 +    ## enable theme 
 +    [[ -z $THEME ]] && THEME=compact 
 +    prompt $THEME 
 +    unset THEME 
 +# }}} 
 + 
 +# {{{ variables 
 +    # preferences 
 +    which nano &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​nano'​ 
 +    which vi &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​vi'​ 
 +    which vim &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​vim'​ 
 +    export PAGER='​less'​
 # }}} # }}}
  
Line 566: Line 720:
  
     case $OSTYPE in solaris*)     case $OSTYPE in solaris*)
-        alias zfs_rsync='​rsync -avAPh+        alias zfs_rsync='​rsync -aviAPh
-        alias zfs_rsync+='​rsync -avAPh --delete'​+        alias zfs_rsync+='​rsync -aviAPh ​--delete'​
     ;; esac     ;; esac
  
     # include local aliases     # include local aliases
-    ​[[ -e ~/.aliasses ]] && mv ~/.aliasses ~/​.aliases +    [[ -e ~/.aliases ]] && source ~/​.aliases ​|| true
-    ​[[ -e ~/.aliases ]] && source ~/.aliases+
 # }}} # }}}
 </​code>​ </​code>​
  
configuration/zsh.1419512224.txt.gz · Last modified: 2014/12/25 13:57 by sjorge