X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=etc%2Fzsh%2Fzshrc;h=03c27d1d43257e3882740c23b9ead4d4227b6727;hb=a096c58879bbeed296a77af0ba31e5da711e223e;hp=042ad28c40941437db93d6a1cef1394ea53817be;hpb=64aa82a0815d2f3fa6d218db4a71735243f14325;p=grml-etc-core.git diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 042ad28..03c27d1 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: Sam Apr 14 11:01:58 CEST 2007 [mika] +# Latest change: Sam Apr 21 23:57:20 CEST 2007 [mika] ################################################################################ # This file is sourced only for interactive shells. It # should contain commands to set up aliases, functions, @@ -88,8 +88,16 @@ # 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' @@ -433,17 +443,22 @@ fi # precmd () { setopt promptsubst; [[ -o interactive ]] && jobs -l; + # make sure to use right prompt only when not running a command + is4 && setopt transient_rprompt + is4 && [[ -z $NOPRECMD ]] && precmd () { [[ -n $NOPRECMD ]] && return 0 + # allow manual overwriting of RPROMPT + [[ -n $RPROMPT ]] && echo -n $'\ekzsh\e\\' && return 0 # just use DONTSETRPROMPT=1 to be able to overwrite RPROMPT - if [[ -z ${DONTSETRPROMPT} ]] ; then - if [ -n "$BATTERY" ] ; then - # RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}" - RPROMPT="${PERCENT}${SCREENTITLE}" - else - # RPROMPT="%(?..:()% ${SCREENTITLE}" - RPROMPT="${SCREENTITLE}" - fi + if [[ -z $DONTSETRPROMPT ]] ; then + if [[ -n $BATTERY ]] ; then + RPROMPT="%(?..:()% ${PERCENT}${SCREENTITLE}" + # RPROMPT="${PERCENT}${SCREENTITLE}" + else + RPROMPT="%(?..:()% ${SCREENTITLE}" + # RPROMPT="${SCREENTITLE}" + fi fi # adjust title of xterm # see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html @@ -466,15 +481,15 @@ fi # get the name of the program currently running and hostname of local machine # set screen window title if running in a screen if [[ "$TERM" == screen* ]]; then - # local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} # dont't use hostname - local CMD="${1[(wr)^(*=*|sudo|ssh|-*)]}$NAME" # use hostname - echo -ne "\ek$CMD\e\\" + # local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} # dont't use hostname + local CMD="${1[(wr)^(*=*|sudo|ssh|-*)]}$NAME" # use hostname + echo -ne "\ek$CMD\e\\" fi # set the screen title to "zsh" when sitting at the command prompt: if [[ "$TERM" == screen* ]]; then - SCREENTITLE=$'%{\ekzsh\e\\%}' + SCREENTITLE=$'%{\ekzsh\e\\%}' else - SCREENTITLE='' + SCREENTITLE='' fi # adjust title of xterm case $TERM in (xterm*|rxvt) @@ -512,11 +527,11 @@ fi # don't use colors on dumb terminals (like emacs): if [[ "$TERM" == dumb ]] ; then - PROMPT="${EXITCODE}${debian_chroot:+($debian_chroot)}%n@%m %40<...<%B%~%b%<< %# " + PROMPT="${EXITCODE}${debian_chroot:+($debian_chroot)}%n@%m %40<...<%B%~%b%<< %# " else # only if $GRMLPROMPT is set (e.g. via 'GRMLPROMPT=1 zsh') use the extended prompt # set variable identifying the chroot you work in (used in the prompt below) - if [[ -n "$GRMLPROMPT" ]]; then + if [[ -n $GRMLPROMPT ]]; then PROMPT="${RED}${EXITCODE}${CYAN}[%j running job(s)] ${GREEN}{history#%!} ${RED}%(3L.+.) ${BLUE}%* %D ${BLUE}%n${NO_COLOUR}@%m %40<...<%B%~%b%<< %# " else @@ -762,12 +777,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 @@ -1020,7 +1029,7 @@ If you want to use xinit anyway please call \"/usr/bin/xinit\"." } _dchange() { _files -W /usr/share/doc -/ } compdef _dchange dchange - + # use "uchange " to view upstream's changelog of the package: uchange() { if [ -r /usr/share/doc/${1}/changelog.gz ] ; then