* /etc/skel/.zshrc:
[grml-etc-core.git] / etc / skel / .zshrc
index 32dcc0c..ea9f6bd 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: Son Nov 12 11:30:30 CET 2006 [mika]
+# Latest change: Fre Nov 24 23:08:52 CET 2006 [mika]
 ################################################################################
 
 # source ~/.zshrc.global {{{
   type compinit &>/dev/null || { autoload -U compinit && compinit }
 # }}}
 
+# make sure isgrmlsmall is defined {{{
+  type isgrmlsmall &>/dev/null || function isgrmlsmall () { return 1 }
+# }}}
+
 ## variables {{{
 
+# do you want grmlsmall-specific adjustments?
+  GRMLSMALL_SPECIFIC=1
+
 # set terminal property (used e.g. by msgid-chooser)
   export COLORTERM="yes"
 
 # set default browser
-  if [ -z $BROWSER ] ; then
+  if [ -z "$BROWSER" ] ; then
      if [ -n "$DISPLAY" ] ; then
         [ -x =firefox ] && export BROWSER=firefox
      else
    'fblinks' 'links2 -driver fb'
    'insecssh' 'ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null"'
    'fori' 'for i ({..}) { }'
-   'cx'        'chmod +x'
-   'e' 'print -l'
+   'cx' 'chmod +x'
+   'e'  'print -l'
    'se' 'setopt interactivecomments'
    'va' 'valac --vapidir=../vapi/ --pkg=gtk+-2.0 gtktest.vala'
    'fb2' '=mplayer -vo fbdev -fs -zoom 1>/dev/null -xy 2'
    'fb3' '=mplayer -vo fbdev -fs  -zoom 1>/dev/null -xy 3'
    'ci' 'centericq'
-   'D' 'export DISPLAY=:0.0'
+   'D'  'export DISPLAY=:0.0'
    'mp' 'mplayer -vo xv -fs -zoom'
   )
   globalias () {
   }
   zle -N globalias
   bindkey ",." globalias
-#  bindkey "^]" globalias
-  bindkey '^k' up-line-or-search  
-# }}}
-
-## another approach for global aliases: cloning vim's abbreviation feature {{{
-# http://zshwiki.org/home/examples/zleiab
-# typeset -A abbreviations
-# abbreviations=(
-#   "Im"    "| more"
-#   "Ia"    "| awk"
-#   "Ig"    "| grep"
-#   "Ieg"   "| egrep"
-#   "Iag"   "| agrep"
-#   "Igr"   "| groff -s -p -t -e -Tlatin1 -mandoc"
-#   "Ip"    "| $PAGER"
-#   "Ih"    "| head"
-#   "Ik"    "| keep"
-#   "It"    "| tail"
-#   "Is"    "| sort"
-#   "Iv"    "| ${VISUAL:-${EDITOR}}"
-#   "Iw"    "| wc"
-#   "Ix"    "| xargs"
-# )
-# 
-# magic-abbrev-expand() {
-#     local MATCH
-#     LBUFFER=${LBUFFER%%(#m)[_a-zA-Z0-9]#}
-#     LBUFFER+=${abbreviations[$MATCH]:-$MATCH}
-#     zle self-insert
-# }
-# 
-# no-magic-abbrev-expand() {
-#   LBUFFER+=' '
-# }
-# 
-# zle -N magic-abbrev-expand
-# zle -N no-magic-abbrev-expand
-# bindkey " " magic-abbrev-expand
-# bindkey "^x " no-magic-abbrev-expand
 # }}}
 
 ## aliases {{{
   alias conkeror='firefox -chrome chrome://conkeror/content'
 
 # arch/tla stuff
-  alias ldiff='tla what-changed --diffs | less'
-  alias tbp='tla-buildpackage'
-  alias mirror='tla archive-mirror'
-  alias commit='tla commit'
-  alias merge='tla star-merge'
+  if type -p tla >/dev/null 2>&1 ; then
+     alias tdi='tla what-changed --diffs | less'
+     alias tbp='tla-buildpackage'
+     alias tmi='tla archive-mirror'
+     alias tco='tla commit'
+     alias tme='tla star-merge'
+  fi
 
 # listing stuff
   alias dir="ls -lSrah"
    echo /proc/*/cwd(:h:t:s/self//) # Analog zu >ps ax | awk '{print $1}'<"
   }
 
+# find out which libs define a symbol
+# usage example: 'lcheck strcpy'
   lcheck() {
-   nm -go /usr/lib/lib*.a 2>/dev/null | grep ":[[:xdigit:]]\{8\} . .*$1"":[[:xdigit:]]\{8\} . .*$1"
+     if [ -n "$1" ] ; then
+        nm -go /usr/lib/lib*.a 2>/dev/null | grep ":[[:xdigit:]]\{8\} . .*$1"
+      else
+        echo "Usage: lcheck <function>" >&2
+     fi
   }
 
 # clean up directory
     $SUDO dpkg -i skype-beta*.deb && echo "skype installed."
   }
 
-# get gzimo (voicp software)
+# get gzimo (VoIP software)
   getgizmo() {
     setopt local_options
     setopt errreturn
       for i in `hg status -marn "$@"` ; diff -ubwd <(hg cat "$i") "$i"
     }
 
-  # diffstat for specific version of mercurial
+  # build debian package
+    alias hbp='hg-buildpackage'
+
+  # diffstat for specific version of a mercurial repository
   #   hgstat      => display diffstat between last revision and tip
   #   hgstat 1234 => display diffstat between revision 1234 and tip
     hgstat() {
       [ -n "$1" ] && hg diff -r $1 -r tip | diffstat || hg export tip | diffstat
     }
 
-  # get current mercurial tip via hg itself and install it in $HOME
-  gethgclone() {
-    setopt local_options
-    setopt errreturn
-    if [ -f mercurial-tree/.hg ] ; then
-      cd mercurial-tree
-      echo "Running hg pull for retreiving latest version..."
-      hg pull
-      echo "Finished update. Building mercurial"
-      make local
-      echo "Setting \$PATH to $PWD:\$PATH..."
-      export PATH="$PWD:$PATH"
-    else
-      echo "Downloading mercurial via hg"
-      hg clone http://selenic.com/repo/hg mercurial-tree
-      cd mercurial-tree
+  # get current mercurial tip via hg itself
+    gethgclone() {
+      setopt local_options
+      setopt errreturn
+      if [ -f mercurial-tree/.hg ] ; then
+        cd mercurial-tree
+        echo "Running hg pull for retreiving latest version..."
+        hg pull
+        echo "Finished update. Building mercurial"
+        make local
+        echo "Setting \$PATH to $PWD:\$PATH..."
+        export PATH="$PWD:$PATH"
+      else
+        echo "Downloading mercurial via hg"
+        hg clone http://selenic.com/repo/hg mercurial-tree
+        cd mercurial-tree
+        echo "Building mercurial"
+        make local
+        echo "Setting \$PATH to $PWD:\$PATH..."
+        export PATH="$PWD:$PATH"
+        echo "make sure you set it permanent via ~/.zshrc if you plan to use it permanently."
+        # echo "Setting \$PYTHONPATH to PYTHONPATH=\${HOME}/lib/python,"
+        # export PYTHONPATH=${HOME}/lib/python
+      fi
+    }
+  
+  fi # end of check whether we have the 'hg'-executable
+
+  # get current mercurial snapshot
+    gethgsnap() {
+      setopt local_options
+      setopt errreturn
+      if [ -f mercurial-snapshot.tar.gz ] ; then
+         echo "mercurial-snapshot.tar.gz exists already, skipping download."
+      else
+        echo "Downloading mercurial snapshot"
+        wget http://www.selenic.com/mercurial/mercurial-snapshot.tar.gz
+      fi
+      echo "Unpacking mercurial-snapshot.tar.gz"
+      tar zxf mercurial-snapshot.tar.gz
+      cd mercurial-snapshot/
+      echo "Installing required build-dependencies"
+      $SUDO apt-get update
+      $SUDO apt-get install python2.4-dev
       echo "Building mercurial"
       make local
       echo "Setting \$PATH to $PWD:\$PATH..."
       export PATH="$PWD:$PATH"
       echo "make sure you set it permanent via ~/.zshrc if you plan to use it permanently."
-      # echo "Setting \$PYTHONPATH to PYTHONPATH=\${HOME}/lib/python,"
-      # export PYTHONPATH=${HOME}/lib/python
-    fi
-  }
-
-  fi # end of check whether we have the 'hg'-executable
-
-  # get and install current mercurial snapshot in $HOME
-  gethgsnap() {
-    setopt local_options
-    setopt errreturn
-    if [ -f mercurial-snapshot.tar.gz ] ; then
-       echo "mercurial-snapshot.tar.gz exists already, skipping download."
-    else
-      echo "Downloading mercurial snapshot"
-      wget http://www.selenic.com/mercurial/mercurial-snapshot.tar.gz
-    fi
-    echo "Unpacking mercurial-snapshot.tar.gz"
-    tar zxf mercurial-snapshot.tar.gz
-    cd mercurial-snapshot/
-    echo "Installing required build-dependencies"
-    $SUDO apt-get update
-    $SUDO apt-get install python2.4-dev
-    echo "Building mercurial"
-    make local
-    echo "Setting \$PATH to $PWD:\$PATH..."
-    export PATH="$PWD:$PATH"
-    echo "make sure you set it permanent via ~/.zshrc if you plan to use it permanently."
-  }
+    }
 # }}}
 
 # some useful commands often hard to remember - let's grep for them {{{
 # print $'\e[?96;0;64c'
 # }}}
 
-# finally source a local zshrc {{{
+# finally source a local zshrc and grmlsmall-specific configuration {{{
+
+# The following file is used to remove zsh-config-items that do not work
+# in grml-small by default.
+# If you do not want these adjustments (for whatever reason),
+# there are three ways to accomplish that:
+#  a) at the beginning of this file (variables section), set
+#     $GRMLSMALL_SPECIFIC to 0 or comment out the variable definition.
+#  b) remove/rename .zshrc.grmlsmall
+#  c) comment out the following line
+  (( GRMLSMALL_SPECIFIC > 0 )) && isgrmlsmall && source ~/.zshrc.grmlsmall
+
 # this allows us to stay in sync with /etc/skel/.zshrc
 # through 'ln -s /etc/skel/.zshrc ~/.zshrc' and put own
 # modifications in ~/.zshrc.local