X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=843b0f88c95bd7d975113428bf802e167890af41;hb=ac8a97797662df20aa9bc239e434ca8f94596bab;hp=116d35a41244e51b1abc148e16e80d25b4fa7fe4;hpb=7cae82a41c8c1c11ccbdf530830a61c22f7a9fd4;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 116d35a..843b0f8 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/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: Fre Jän 05 00:00:23 CET 2007 [mika] +# Latest change: Son Jän 14 10:57:03 CET 2007 [mika] ################################################################################ # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, @@ -12,6 +12,13 @@ # Global Order: zshenv, zprofile, zshrc, zlogin ################################################################################ +# zsh profiling {{{ +# just execute 'ZSH_PROFILE_RC=1 zsh' and run 'zprof' to get the details + if [[ -n $ZSH_PROFILE_RC ]] ; then + zmodload zsh/zprof + fi +# }}} + # {{{ check for version/system # check for versions (compatibility reasons) if autoload is-at-least && is-at-least 2>/dev/null ; then @@ -51,6 +58,7 @@ isutfenv() { case "$LANG $CHARSET $LANGUAGE" in *utf*) return 0 ;; + *UTF*) return 0 ;; *) return 1 ;; esac } @@ -256,7 +264,7 @@ fi # autoload zsh modules when they are referenced is4 && for opt mod in a stat \ a zpty \ - a zprof \ + ap zprof \ ap mapfile ; do zmodload -${opt} zsh/${mod} ${mod} done ; unset opt mod @@ -386,7 +394,7 @@ fi # {{{ display battery status on right side of prompt via running 'BATTERY=1 zsh' if [ -n "$BATTERY" ] ; then - if [ -x =acpi ] ; then + if [ -x $(which acpi) ] ; then PERCENT="${(C)${(s| |)$(acpi 2>/dev/null)}[4]}" [ -z "$PERCENT" ] && PERCENT='acpi not present' if [ "${PERCENT%%%}" -lt 20 ] ; then @@ -557,7 +565,7 @@ ${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# " # I like clean prompt, so provide simple way to get that alias 0 &>/dev/null || functions 0 &>/dev/null || alias 0='return 0' -# truecrypt; use e.g. via 'truec /dev/ice' /mnt/ice' or 'truec -i' +# truecrypt; use e.g. via 'truec /dev/ice /mnt/ice' or 'truec -i' if [ -x /usr/sbin/truecrypt ] ; then if isutfenv ; then alias truec='truecrypt --mount-options "rw,sync,dirsync,users,uid=1000,gid=users,umask=077,utf8" ' @@ -650,9 +658,15 @@ Enjoy your grml system with the zsh!$reset_color" alias zshskel="source /etc/skel/.zshrc" # source skeleton zshrc fi +# sort installed Debian-packages by size + if [ -x /usr/bin/grep-status ] ; then + alias debs-by-size='grep-status -FStatus -sInstalled-Size,Package \ + -n "install ok installed" | paste -sd " \n" | sort -rn' + fi + # if cdrecord is a symlink (to wodim) or isn't present at all warn: - if [ -L /usr/bin/cdrecord -o ! -x =cdrecord ] ; then - if [ -x =wodim ] ; then + if [ -L /usr/bin/cdrecord -o ! -x $(which cdrecord) ] ; then + if [ -x $(which wodim) ] ; then alias cdrecord="echo 'cdrecord is not provided under its original name by Debian anymore. See #377109 in the BTS of Debian for more details. @@ -784,7 +798,7 @@ grmlcomp() { [ -d $ZSHDIR/cache ] && zstyle ':completion:*' use-cache yes && \ zstyle ':completion::complete:*' cache-path $ZSHDIR/cache/ -# host completion +# host completion /* add brackets as vim can't parse zsh's complex cmdlines 8-) {{{ */ if is42 ; then [ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=() [ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(/dev/null ; then manzsh() { qma zshall "$1" } + compdef _man qma else manzsh() { /usr/bin/man zshall | vim -c "se ft=man| se hlsearch" +/"$1" - ; } # manzsh() { /usr/bin/man zshall | most +/"$1" ; } @@ -947,6 +962,11 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." _uchange() { _files -W /usr/share/doc -/ } compdef _uchange uchange +# zsh profiling + profile () { + ZSH_PROFILE_RC=1 $SHELL "$@" + } + # edit alias via zle: edalias() { [ -z "$1" ] && { echo "Usage: edalias " ; return 1 } || vared aliases'[$1]' ; @@ -1025,6 +1045,27 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." fi } + # After resuming from suspend, system is paging heavilly, leading to very bad interactivity. + # taken from $LINUX-KERNELSOURCE/Documentation/power/swsusp.txt + [ -r /proc/1/maps ] && deswap() { + print 'Reading /proc/[0-9]*/maps and sending output to /dev/null, this might take a while.' + cat $(sed -ne 's:.* /:/:p' /proc/[0-9]*/maps | sort -u | grep -v '^/dev/') > /dev/null + print 'Finished, running "swapoff -a; swapon -a" may also be useful.' + } + + # print hex value of a number + hex() { + [ -n "$1" ] && printf "%x\n" $1 || { print 'Usage: hex ' ; return 1 } + } + + # calculate (or eval at all ;-)) with perl => p[erl-]eval + # hint: also take a look at zcalc -> 'autoload zcalc' -> 'man zshmodules | less -p MATHFUNC' + peval() { + [ -n "$1" ] && CALC="$*" || print "Usage: calc [expression]" + perl -e "print eval($CALC),\"\n\";" + } + functions peval &>/dev/null && alias calc=peval + # Switching shell safely and efficiently? http://www.zsh.org/mla/workers/2001/msg02410.html # bash() { # NO_SWITCH="yes" command bash "$@"