X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fskel%2F.zshrc;h=630272e486cd204eb4b3b74385c856be2169f4f9;hb=e2207cdcaa24da681907bc27f86aa56a296eb1bb;hp=d2d5f79ef1abcfd1e6c44dbc08ec5f1e02cfcc93;hpb=3b12b1642d0f5a66dd9e289258627ead082c3435;p=grml-etc-core.git diff --git a/etc/skel/.zshrc b/etc/skel/.zshrc index d2d5f79..630272e 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: Don Dez 06 23:27:51 CET 2007 [mika] +# Latest Change: Sat Jan 26 11:55:04 CET 2008 ################################################################################ # source ~/.zshrc.global {{{ @@ -15,15 +15,18 @@ # Note, that xsource() is defined in the global file, so here, # we will have to do the sourcing manually for once: - [[ -z "$ZSHRC_GLOBAL_HAS_BEEN_READ" ]] \ - && [[ -r "${HOME}/.zshrc.global" ]] \ - && source "${HOME}/.zshrc.global" +[[ -z "$ZSHRC_GLOBAL_HAS_BEEN_READ" ]] \ +&& [[ -r "${HOME}/.zshrc.global" ]] \ +&& source "${HOME}/.zshrc.global" # }}} # check whether global file has been read {{{ 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 @@ -257,7 +259,25 @@ fi #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 -debbug() { ${=BROWSER} "http://bugs.debian.org/$*" } +debbug() { + setopt localoptions extendedglob + if [[ $# -eq 1 ]]; then + case "$1" in + ([0-9]##) + ${=BROWSER} "http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=$1" + ;; + (*@*) + ${=BROWSER} "http://bugs.debian.org/cgi-bin/pkgreport.cgi?submitter=$1" + ;; + (*) + ${=BROWSER} "http://bugs.debian.org/$*" + ;; + esac + else + print "$0 needs one argument" + return 1 + fi +} #f4# Search Debian Bug Tracking System debbugm() { bts show --mbox $1 } # provide bugnummer as "$1" #f4# Search DMOZ @@ -579,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 @@ -586,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' - } @@ -635,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) } @@ -890,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() { @@ -1054,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" @@ -1079,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 } @@ -1111,8 +1170,6 @@ weather() { return 1 fi } - - # }}} # mercurial related stuff {{{