Big rewrite of /etc/zsh/completion.d/, thanks to ft!
[grml-etc-core.git] / etc / zsh / zshrc
index 153f61d..018914c 100644 (file)
@@ -3,7 +3,7 @@
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Bug-Reports:   see http://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
-# Latest change: Sam Mär 17 20:12:26 CET 2007 [mika]
+# Latest change: Son Apr 15 22:36:24 CEST 2007 [mika]
 ################################################################################
 # This file is sourced only for interactive shells. It
 # should contain commands to set up aliases, functions,
 # Search path for the cd comman
 #  cdpath=(.. ~)
 
-# Support our own site-functions
-  [ -d /etc/zsh/site-functions ] && FPATH=/etc/zsh/site-functions:$FPATH
+# completion functions go to /etc/zsh/completion.d
+# function files may be put into /etc/zsh/functions.d, from where they
+# will be automatically autoloaded.
+  [[ -d /etc/zsh/completion.d ]] && fpath+=( /etc/zsh/completion.d )
+  if [[ -d /etc/zsh/functions.d ]] ; then
+    fpath+=( /etc/zsh/functions.d )
+    for func in /etc/zsh/functions.d/[^_]*[^~] ; do
+      autoload -U ${func:t}
+    done
+  fi
 
 # automatically remove duplicates from these arrays
   typeset -U path cdpath fpath manpath
@@ -255,11 +263,13 @@ fi
   autoload history-search-end
 
   # we don't want to quote/espace URLs on our own...
-  if autoload -U url-quote-magic ; then
-     zle -N self-insert url-quote-magic
-  else
-     print 'Notice: no url-quote-magic available :('
-  fi
+  # if autoload -U url-quote-magic ; then
+  #    zle -N self-insert url-quote-magic
+  #    zstyle ':url-quote-magic:*' url-metas '*?[]^()~#{}='
+  # else
+  #    print 'Notice: no url-quote-magic available :('
+  # fi
+  alias url-quote='autoload -U url-quote-magic ; zle -N self-insert url-quote-magic'
 
   alias run-help >&/dev/null && unalias run-help
   autoload run-help # use via 'esc-h'
@@ -724,6 +734,14 @@ Please use the wodim binary instead' ; return 1"
      fi
   fi
 
+# get_tw_cli has been renamed into get_3ware
+  if [ -x /usr/bin/get_3ware ] ; then
+     get_tw_cli() {
+       echo 'Warning: get_tw_cli has been renamed into get_3ware. Invoking get_3ware for you.'>&2
+       get_3ware
+     }
+  fi
+
 # I hate lacking backward compability, so provide an alternative therefore
   if ! [ -x /usr/sbin/apache2-ssl-certificate ] ; then
    function apache2-ssl-certificate(){
@@ -754,12 +772,6 @@ Run "grml-tips ssl-certificate" if you need further instructions.
 
 # {{{ completion stuff
 
-# Where to look for autoloaded function definitions
-  if [ -d /etc/zsh/completion.d ] ; then
-    local comp=/etc/zsh/completion.d
-    for func in $comp/*(N-.:t); . ${comp}/${func}
-  fi
-
 # called later (via is4 && grmlcomp)
 # notice: use 'zstyle' for getting current settings
 #         press ^Xh (control-x h) for getting tags in context; ^X? (control-x ?) to run complete_debug with trace output
@@ -974,18 +986,16 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"."
   }
   compdef _functions reload freload
 
-  # list symlinks in detail (more detailed version of 'readlinkg -f')
+  # list symlinks in detail (more detailed version of 'readlink -f' and 'whence -s')
   sll() {
-     if [ -z "$1" ] ; then
-        print 'Usage: sll <file>' >&2
-        return 1
-     fi
-     for i in $* ; do
-         ls --color=auto -la "$i"
-         if [ -L "$i" ] ; then
-            sll $(readlink "$i")
-         fi
-     done
+    [ -z "$1" ] && printf 'Usage: %s <file(s)>\n' "$0" && return 1
+    for i in "$@" ; do
+      file=$i
+      while [ -h "$file" ] ; do
+        ls -l $file
+        file=$(readlink "$file")
+      done
+    done
   }
 
   # fast manual access