X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fskel%2F.zshrc;h=62c82a80c6e903bcc5af89eb73a69f51a133594e;hb=724508d30c788da653579d44ac3566f27ffed1d6;hp=e722f764926159d4a596d2e21ff0fe07e32846b3;hpb=564fa8685764092d1d38d83272fc8b25e7eaa4a9;p=grml-etc-core.git diff --git a/etc/skel/.zshrc b/etc/skel/.zshrc index e722f76..62c82a8 100644 --- a/etc/skel/.zshrc +++ b/etc/skel/.zshrc @@ -3,7 +3,7 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Son Dez 09 22:58:07 CET 2007 [mika] +# Latest Change: Sat Jan 26 11:55:04 CET 2008 ################################################################################ # source ~/.zshrc.global {{{ @@ -24,6 +24,9 @@ if [[ -z "$ZSHRC_GLOBAL_HAS_BEEN_READ" ]] ; then print 'Warning: global zsh config has not been read.' >&2 print ' prepare for possible errors!' >&2 + print '' >&2 + print 'See our refcard for info on how to get the complete configuration:' >&2 + print ' ' >&2 fi # }}} @@ -35,6 +38,7 @@ fi # completion system {{{ # just make sure it is loaded in this file too +# TODO: is this *really* needed? compsys should be run in the global zshrc already. check_com compinit || { autoload -U compinit && compinit } # }}} @@ -60,8 +64,6 @@ if [[ -z "$BROWSER" ]] ; then check_com -c w3m && export BROWSER=w3m fi fi -#v# -(( ${+PAGER} )) || export PAGER="less" #m# v QTDIR \kbd{/usr/share/qt[34]}\quad [for non-root only] [[ -d /usr/share/qt3 ]] && export QTDIR=/usr/share/qt3 @@ -256,7 +258,7 @@ fi # searching #f4# Search for newspostings from authors agoogle() { ${=BROWSER} "http://groups.google.com/groups?as_uauthors=$*" ; } -#f4# Search Debian Bug Tracking System by BugID in mbox format +#f4# Search Debian Bug Tracking System debbug() { setopt localoptions extendedglob if [[ $# -eq 1 ]]; then @@ -276,7 +278,7 @@ debbug() { return 1 fi } -#f4# Search Debian Bug Tracking System +#f4# Search Debian Bug Tracking System by BugID in mbox format debbugm() { bts show --mbox $1 } # provide bugnummer as "$1" #f4# Search DMOZ dmoz() { ${=BROWSER} http://search.dmoz.org/cgi-bin/search\?search=${1// /_} } @@ -597,6 +599,7 @@ show-archive() { *.tgz) tar -ztf $1 ;; *.zip) unzip -l $1 ;; *.bz2) bzless $1 ;; + *.deb) dpkg-deb --fsys-tarfile $1 | tar -tf - -- ;; *) echo "'$1' Error. Please go away" ;; esac else @@ -604,39 +607,6 @@ show-archive() { fi } -# TODO: isn't ssl() like this, but clean? -# I'd like to remove this, it's a gross hack, IMHO -ft -#f5# Follow symlinks -folsym() { - if [[ -e $1 || -h $1 ]] ; then - file=$1 - else - file=`which $1` - fi - if [[ -e $file || -L $file ]] ; then - if [[ -L $file ]] ; then - echo `ls -ld $file | perl -ane 'print $F[7]'` '->' - folsym `perl -le '$file = $ARGV[0]; - $dest = readlink $file; - if ($dest !~ m{^/}) { - $file =~ s{(/?)[^/]*$}{$1$dest}; - } else { - $file = $dest; - } - $file =~ s{/{2,}}{/}g; - while ($file =~ s{[^/]+/\.\./}{}) { - ; - } - $file =~ s{^(/\.\.)+}{}; - print $file' $file` - else - ls -d $file - fi - else - echo $file - fi -} - # It's shameless stolen from #f5# Use \kbd{vim} as your manpage reader vman() { man $* | col -b | view -c 'set ft=man nomod nolist' - } @@ -653,6 +623,22 @@ readme() { fi } +# function ansi-colors() +#f5# Display ANSI colors +ansi-colors() { + typeset esc="\033[" line1 line2 + echo " _ _ _40 _ _ _41_ _ _ _42 _ _ 43_ _ _ 44_ _ _45 _ _ _ 46_ _ _ 47_ _ _ 49_ _" + for fore in 30 31 32 33 34 35 36 37; do + line1="$fore " + line2=" " + for back in 40 41 42 43 44 45 46 47 49; do + line1="${line1}${esc}${back};${fore}m Normal ${esc}0m" + line2="${line2}${esc}${back};${fore};1m Bold ${esc}0m" + done + echo -e "$line1\n$line2" + done +} + # suidfind() { ls -latg $path | grep '^...s' } #f5# Find all files in \$PATH with setuid bit set suidfind() { ls -latg $path/*(sN) } @@ -908,17 +894,22 @@ git-get-commit() { } #f5# Get specific git diff -git-get-plaindiff() { +git-get-plaindiff () { if [[ -z $GITTREE ]] ; then - GITTREE='linux/kernel/git/torvalds/linux-2.6.git' + GITTREE='linux/kernel/git/torvalds/linux-2.6.git' fi - if ! [[ -z $1 ]] ; then - wget "http://kernel.org/git/?p=$GITTREE;a=commitdiff_plain;h=$1" -O $1.diff + if [[ -z $1 ]] ; then + echo 'Usage: git-get-plaindiff ' else - echo 'Usage: git-get-plaindiff ' + echo -n "Downloading $1.diff ... " + # avoid "generating ..." stuff from kernel.org server: + wget --quiet "http://kernel.org/git/?p=$GITTREE;a=commitdiff_plain;h=$1" -O /dev/null + wget --quiet "http://kernel.org/git/?p=$GITTREE;a=commitdiff_plain;h=$1" -O $1.diff \ + && echo done || echo failed fi } + # http://strcat.de/blog/index.php?/archives/335-Software-sauber-deinstallieren...html #f5# Log 'make install' output mmake() { @@ -1072,6 +1063,55 @@ zurl() { | sed 's/value=//;s/"//g' } +#f2# Find history events by search pattern and list them by date. +whatwhen() { +# {{{ + local usage help ident format_l format_s first_char remain first last + usage='USAGE: whatwhen [options] ' + help='Use' \`'whatwhen -h'\'' for further explanations.' + ident=${(l,${#${:-Usage: }},, ,)} + format_l="${ident}%s\t\t\t%s\n" + format_s="${format_l//(\\t)##/\\t}" + # Make the first char of the word to search for case + # insensitive; e.g. [aA] + first_char=[${(L)1[1]}${(U)1[1]}] + remain=${1[2,-1]} + # Default search range is `-100'. + first=${2:-\-100} + # Optional, just used for ` ' given. + last=$3 + case $1 in + ("") + printf '%s\n\n' 'ERROR: No search string specified. Aborting.' + printf '%s\n%s\n\n' ${usage} ${help} && return 1 + ;; + (-h) + printf '%s\n\n' ${usage} + print 'OPTIONS:' + printf $format_l '-h' 'show help text' + print '\f' + print 'SEARCH RANGE:' + printf $format_l "'0'" 'the whole history,' + printf $format_l '-' 'offset to the current history number; (default: -100)' + printf $format_s '<[-]first> []' 'just searching within a give range' + printf '\n%s\n' 'EXAMPLES:' + printf ${format_l/(\\t)/} 'whatwhen grml' '# Range is set to -100 by default.' + printf $format_l 'whatwhen zsh -250' + printf $format_l 'whatwhen foo 1 99' + ;; + (\?) + printf '%s\n%s\n\n' ${usage} ${help} && return 1 + ;; + (*) + # -l list results on stout rather than invoking $EDITOR. + # -i Print dates as in YYYY-MM-DD. + # -m Search for a - quoted - pattern within the history. + fc -li -m "*${first_char}${remain}*" $first $last + ;; + esac +# }}} +} + # change fluxbox keys from 'Alt-#' to 'Alt-F#' and vice versa fluxkey-change() { [[ -n "$FLUXKEYS" ]] || local FLUXKEYS="$HOME/.fluxbox/keys" @@ -1097,6 +1137,7 @@ fluxkey-change() { weather() { [[ -n "$1" ]] || { print 'Usage: weather ' >&2 + print 'List of stations: http://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code'>&2 return 1 } @@ -1129,8 +1170,6 @@ weather() { return 1 fi } - - # }}} # mercurial related stuff {{{ @@ -1271,9 +1310,6 @@ gethgsnap() { # modifications in ~/.zshrc.local xsource "${HOME}/.zshrc.local" -# ...and remove utility functions again. -xunfunction - # }}} ### doc strings for external functions from files