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 14:28]
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 ​20141225018+# 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: new - added CMD_SAFE_WRAP (defaults to 1)
 # - 20141225: --- - switch to selective nocorrect/​noglob # - 20141225: --- - switch to selective nocorrect/​noglob
Line 78: 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 97: Line 106:
  
     ## superglobs     ## superglobs
-    #setopt extended_glob 
     unsetopt case_glob     unsetopt case_glob
     ​     ​
Line 119: Line 127:
     ## make some commands safer     ## make some commands safer
     CMD_SAFE_WRAP=0     CMD_SAFE_WRAP=0
 +    setopt mark_dirs
  
     ## include local options     ## include local options
Line 261: Line 270:
  
 # {{{ advanced # {{{ advanced
 +    ## cleanup aliases
 +    noglob unalias -m cd cp ls mv rm 
 +
     ## fix url quote'​s     ## fix url quote'​s
     if [[ ${ZSH_VERSION//​\./​} -ge 420 ]] ; then     if [[ ${ZSH_VERSION//​\./​} -ge 420 ]] ; then
Line 275: 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)
Line 286: 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 299: 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 379: 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 391: 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 421: Line 437:
     ## 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 439: Line 444:
             PROMPT_HOST_COLOR=green             PROMPT_HOST_COLOR=green
         ;;         ;;
-        (artemis*|monolith*)+        (exosphere*|crust*)
             PROMPT_HOST_COLOR=red             PROMPT_HOST_COLOR=red
         ;;         ;;
Line 466: Line 471:
     zstyle ':​completion::​complete:​*'​ use-cache on     zstyle ':​completion::​complete:​*'​ use-cache on
     zstyle ':​completion::​complete:​*'​ cache-path ~/.zcache     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     ## pretty menu's
Line 473: Line 523:
     setopt list_rows_first ​ # use row list if possible     setopt list_rows_first ​ # use row list if possible
  
-    ## Ignore completions for commands that we dont have +    ## prevent re-suggestion 
-    zstyle ':​completion:​*:​functions' ​ignored-patterns '_*'+    zstyle ':​completion:​*:​(scp|rm|kill|diff):​*' ​ignore-line yes 
 +    #zstyle ':​completion:​*:​rm:​*'​ file-patterns '*:all-files'
  
-    ​## enable case-insensitive completion +    ## enable killall menu (linux)
-    zstyle ':​completion:​*'​ matcher-list '​m:​{a-zA-Z}={A-Za-z}'​ +
- +
-    ## 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'​ command 'ps -u $(whoami) -o comm='
     zstyle ':​completion:​*:​processes-names'​ menu yes select     zstyle ':​completion:​*:​processes-names'​ menu yes select
     zstyle ':​completion:​*:​processes-names'​ force-list always ​   ​     zstyle ':​completion:​*:​processes-names'​ force-list always ​   ​
  
-    ## enable kill menu +    ## enable kill menu (linux) ​   
-    zstyle ':​completion:​*:​kill:*' command 'ps -u $(whoami) -o pid,​pcpu,​pmem,​cmd'+    ​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:​*:​processes'​ list-colors '=(#b) #​([0-9]#​)*=0=01;​32'​
     zstyle ':​completion:​*:​*:​kill:​*'​ menu yes select     zstyle ':​completion:​*:​*:​kill:​*'​ menu yes select
-    zstyle ':​completion:​*:​kill:​*'​ force-list always +    zstyle ':​completion:*:​*:​kill:​*'​ force-list always 
-    zstyle ':​completion:​*:​kill:​*'​ insert-ids single+    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     ## enable make completion
     compile=(all clean compile disclean install remove uninstall)     compile=(all clean compile disclean install remove uninstall)
     compctl -k compile make     compctl -k compile make
- +    ​ 
-    ## ssh host completion+    ## 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     if [ ! -f ~/​.ssh/​config ]; then
         [ -f ~/​.ssh/​known_hosts ] && rm ~/​.ssh/​known_hosts         [ -f ~/​.ssh/​known_hosts ] && rm ~/​.ssh/​known_hosts
Line 507: Line 592:
         chmod 0600 ~/​.ssh/​config         chmod 0600 ~/​.ssh/​config
     fi     fi
-    zstyle -e ':​completion::*:ssh:​*:​hosts'​ hosts '​reply=(${=${${(f)"​$(cat {/​etc/​ssh_,​~/​.ssh/​known_}hosts(|2)(N) /​dev/​null)"​}%%[#​ ]*}//,/ })' +    zstyle -e ':​completion:​*:​hosts'​ hosts '​reply=( 
-    ​zstyle ':completion:*:ssh:*' ​group-order hosts-domain hosts-host users hosts-ipaddr+        ${=${=${=${${(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 user completion ​cleanup +    ## ssh/​scp/​rsync 
-    zstyle ':​completion:​*:​ssh:​*:​users'​ ignored-patterns ​\                      +    zstyle ':completion:​*:​(scp|rsync):​*'​ tag-order '​hosts:​-host:​host hosts:​-domain:​domain hosts:​-ipaddr:​ip\ address *' 
-        $(awk -F: '$3<500 || $3>60000 {print $1}' ​/​etc/​passwd)+    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::​*'​
 # }}} # }}}
  
Line 526: Line 619:
     alias mv='​nocorrect mv'     alias mv='​nocorrect mv'
     alias rm="​nocorrect ${aliases[rm]:​-rm}"​     alias rm="​nocorrect ${aliases[rm]:​-rm}"​
 +    which sshpass &> /dev/null ; [ $? -eq 0 ] && alias sshpass='​nocorrect sshpass'​
     ​     ​
     ## disable globbing.     ## disable globbing.
Line 535: Line 629:
     alias scp='​noglob scp'     alias scp='​noglob scp'
     alias sftp='​noglob sftp'     alias sftp='​noglob sftp'
-    alias ssh='​noglob ​sftp'+    alias ssh='​noglob ​ssh'
 # }}} # }}}
  
Line 549: Line 643:
  
 # {{{ prompt # {{{ prompt
-    # enable colors module+    ​## enable colors ​and prompt ​module
     autoload -U colors && colors     autoload -U colors && colors
 +    autoload -Uz promptinit && promptinit
  
-    # utf8 checkmarks+    #checkmarks
     PROMPT_CO='​.'​     PROMPT_CO='​.'​
     PROMPT_CE='​!'​     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 +    ​## create themes 
-    ​case $THEME in +    ​prompt_gentoo_setup() { 
-        ​gentoo) +        PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' 
-            ​PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' +        ​RPROMPT=''​ 
-        ​;; +    } 
-        ​gentoo_server+    prompt_themes=($prompt_themes gentoo
-            PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' +     
-        ​;; +    prompt_gentoo_server_setup() { 
-        ​minimal+        ​PROMPT='​%(!.%{$fg_bold[red]%}.%{$fg_bold[yellow]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) %#​%{$reset_color%} ' 
-            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=''​ 
-            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 gentoo_server
-        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%} ' +    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%} ' 
-    ​esac+        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     unset THEME
 # }}} # }}}
Line 586: Line 707:
     # preferences     # preferences
     which nano &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​nano'​     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'​     which vim &> /dev/null ; [ $? -eq 0 ] && export EDITOR='​vim'​
     export PAGER='​less'​     export PAGER='​less'​
Line 598: 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.1419514104.txt.gz · Last modified: 2014/12/25 14:28 by sjorge