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
Last revision Both sides next revision
configuration:zsh [2014/12/25 14:37]
sjorge [.zshrc]
configuration:zsh [2017/05/01 18:31]
sjorge [.zshrc]
Line 36: Line 36:
 ## .zshrc ## .zshrc
 # by Jorge Schrauwen <​jorge@blackdot.be>​ # by Jorge Schrauwen <​jorge@blackdot.be>​
-# Version ​20141225018+# Version ​20160621001
 #         ​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
-    ## wipe existing ​aliases +    ## cleanup ​aliases 
-    noglob unalias -m *+    noglob unalias -m cd cp ls mv rm 
  
     ## fix url quote'​s     ## fix url quote'​s
Line 278: 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 289: 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 302: 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 382: 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 394: 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 424: 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 442: Line 444:
             PROMPT_HOST_COLOR=green             PROMPT_HOST_COLOR=green
         ;;         ;;
-        (artemis*|monolith*)+        (exosphere*|crust*)
             PROMPT_HOST_COLOR=red             PROMPT_HOST_COLOR=red
         ;;         ;;
Line 469: 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 476: 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 510: 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 }:#*\**}:#*\?*}} 
 +    )'
  
-    ## user completion ​cleanup +    ## ssh/​scp/​rsync 
-    zstyle ':​completion:​*:​*:​*:​users'​ ignored-patterns ​\ +    zstyle ':completion:​*:​(scp|rsync):​*'​ tag-order '​hosts:​-host:​host hosts:​-domain:​domain hosts:​-ipaddr:​ip\ address *' 
-        adm amanda apache avahi beaglidx bin cacti canna clamav daemon \ +    zstyle ':​completion:​*:​(scp|rsync):*' group-order users files all-files hosts-domain hosts-host hosts-ipaddr 
-        dbus distcache dovecot fax ftp games gdm gkrellmd gopher \ +    zstyle ':​completion:*:ssh:*' tag-order '​hosts:​-host:​host hosts:​-domain:​domain hosts:​-ipaddr:​ip\ address *' 
-        hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \ +    zstyle ':​completion:​*:​ssh:​*'​ group-order ​users hosts-domain hosts-host users hosts-ipaddr 
-        mailman mailnull mldonkey mysql nagios \ +    zstyle ':​completion:​*:​(ssh|scp|rsync):​*:​hosts-host' ignored-patterns ​'​*(.|:​)*'​ loopback ip6-loopback localhost ip6-localhost ip6-allnodes ip6-allrouters ip6-localnet ip6-mcastprefix broadcasthost 
-        named netdump news nfsnobody nobody nscd ntp nut nx openvpn \ +    ​zstyle ':​completion:​*:​(ssh|scp|rsync):​*:​hosts-domain'​ ignored-patterns '<​->​.<​->​.<​->​.<​->'​ '​^[-[:​alnum:​]]##​(.[-[:​alnum:​]]##​)##'​ '​*@*'​ 
-        operator pcap postfix postgres privoxy pulse pvm quagga radvd \ +    ​zstyle ​':​completion:​*:​(ssh|scp|rsync):​*:​hosts-ipaddr'​ ignored-patterns '​^(<​->​.<​->​.<​->​.<​->​|(|::​)([[:​xdigit:​].]##:​(#​c,​2))##​(|%*))'​ '​127.0.0.<​->'​ '​255.255.255.255'​ '::​1'​ '​fe80::​*'​ '​fe00::​*'​ '​ff00::​*'​ '​ff02::​*'
-        rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs '_*'+
 # }}} # }}}
  
Line 535: 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 544: 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 558: 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 595: 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 607: 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.txt · Last modified: 2017/05/01 18:32 by sjorge