initial checkin
[zsh-lovers.git] / zsh_people / thomas_koehler / zshrc
1 ### OPTIONS
2 setopt completeinword
3 setopt no_always_last_prompt
4 setopt rm_star_silent
5 setopt automenu
6 setopt extended_glob
7 setopt autopushd
8 setopt nobgnice
9 setopt hist_ignore_all_dups
10 setopt sharehistory
11 unsetopt promptcr
12 ### path history
13 DIRSTACKSIZE=15
14 setopt autopushd pushdminus pushdsilent pushdtohome
15 setopt autolist
16 setopt extendedglob
17
18
19 ### ALIASES
20 alias dh="dirs -v"
21 # I used to use xv to often...
22 alias xv="gqview -l"
23 alias run-help=man
24 alias lterm="export TERM=linux"
25 alias ll="ls -al --color"
26 alias ls="ls --color"
27 alias l="ls -a --color"
28 #alias ll="/bin/ls -al"
29 #alias ls="/bin/ls"
30 #alias l="/bin/ls -a"
31 # export LYNX_CFG=~/.lynxrc
32 alias lynx="noglob command lynx -cfg=~/.lynxrc"
33
34 ### ENVIRONMENT VARIABLES
35 LC_COLLATE=C ; export LC_COLLATE
36 MAILCHECK=86400
37 # export LANG=de_DE@euro
38 export LANG=de_DE
39 export LC_MESSAGES=en_US
40
41 export ORACLE_HOME=/home/oracle/OraHome1
42 # export ORACLE_SID=whatever
43
44 COLORX="\e[0;31;47m"
45 COLOR0="\e[0m"
46 COLOR1="\e[0;30;41m"
47 COLOR2="\e[0;30;42m"
48 COLOR3="\e[0;30;43m"
49 COLOR4="\e[0;30;44m"
50 COLOR5="\e[0;30;45m"
51 COLOR6="\e[0;30;46m"
52 COLOR7="\e[0;30;47m"
53 COLOR8="\e[0;34;41m"
54 COLOR9="\e[0;34;43m"
55 COLOR10="\e[0;37;44m"
56 COLOROFF="\e[0m"
57
58 red='%{\e[0;31m%}'
59 white_on_blue='%{\e[0;37;44m%}'
60 green='%{\e[0;32m%}'
61 yellow='%{\e[0;33m%}'
62 blue='%{\e[0;34m%}'
63 magenta='%{\e[0;35m%}'
64 cyan='%{\e[0;36m%}'
65 nocolor='%{\e[0m%}'
66
67 ZDOTDIR="$HOME/.zsh"
68
69 if [ "$TERM" = "xterm-debian" ] ; then 
70    chpwd () {
71       echo -n "\e]2;$LOGNAME@$(hostname): $(pwd)\a"
72    }
73 fi
74
75 PROMPT2='%_> '
76 RPROMPT='%{\e[0;33m%}%1v%{\e[0m%}'
77
78 export HISTFILE=~/.zshhistory
79 export HISTSIZE=500
80 export SAVEHIST=500
81 export NNTPSERVER=picard.franken.de
82 ###        
83 export PATH="/usr/lib/compilercache:$JAVA_HOME/bin:/home/tkoehler/bin:/usr/local/bin/X11:/usr/local/bin:/bin:/usr/X11R6/bin:/usr/bin:/usr/sbin:/usr/bin/X11:/local/bin:/usr/games:/usr/lib/mutt:${ORACLE_HOME}/bin:/usr/lib/ICAClient:/usr/local/sap/SAPGUI/6.30/bin"
84
85 VIM=/usr/local/share/vim
86 echo ~VIM >/dev/null
87
88 # alias JAVA_HOME="export JAVA_HOME=/usr/lib/jdk1.1/"
89 export JAVA_HOME=/usr/local/java/j2sdk1.4.2_01
90
91 ## SAP
92 #### PLATINHOME="/usr/local/sap/SAPGUI/6.30/"
93 PLATIN_JAVA="/usr/local/java/j2sdk1.4.2_01/bin/java"
94 PLATIN_JAVA_VER=1.4.2
95 ###   export PLATINHOME PLATIN_JAVA PLATIN_JAVA_VER
96 export PLATIN_JAVA PLATIN_JAVA_VER
97 export EDITOR=/usr/local/bin/vim
98 export SLANG_EDITOR="/usr/local/bin/vim %s"
99
100 export MOZILLA_HOME="/usr/local/netscape"
101
102 export QTDIR PATH MANPATH LD_LIBRARY_PATH LIBRARY_PATH
103 export CPLUS_INCLUDE_PATH
104
105 export IRCNAME="http://jeanluc-picard.de/irc.html"
106 export PAGER=less
107
108 export LD_LIBRARY_PATH=/home/tkoehler/lib:/home/oracle/OraHome1/lib/
109
110 # export LESS
111
112
113 export ZLS_COLOURS
114 ZLS_COLOURS="no=36;40:fi=36;40:di=32;40:ln=33;40:pi=31;40:so=22;40:bd=44;37:cd=44;37:ex=35;40:mi=36;40:lc=\e[:rc=m:mi=37;41"
115 LS_COLORS=$ZLS_COLOURS
116 export LS_COLORS
117 #### muß mal noch rausfinden, warum die hier in ganz neuen zsh-Versionen nicht
118 #### mehr so tun...
119 export ZLS_COLOURS
120 #       no 0   for normal text  (i.e.  when  displaying  something
121 #              other than a matched file)
122 #       fi 0   for regular files
123 #       di 32  for directories
124 #       ln 36  for symbolic links
125 #       pi 31  for named pipes (FIFOs)
126 #       so 33  for sockets
127 #       bd 44;37
128 #              for block devices
129 #       cd 44;37
130 #              for character devices
131 #       ex 35  for executable files
132 #       mi none
133 #              for non-existent file (default is the value defined
134 #              for fi)
135 #       lc \e[ for the left code (see below)
136 #       rc m   for the right code
137 #       ec none
138 #              for the end code
139 MANPATH=/usr/man:/usr/share/man:/usr/X11R6/man:/usr/local/man
140
141 ### cool
142 export REPORTTIME=3
143
144 ### FUNCTIONS
145 x() { a=$1 ; shift ; echo "$@" |  xargs $a }
146 prepare_ssh() {
147    if [ -f $HOME/.ssh/agent_var ] ; then
148       . $HOME/.ssh/agent_var
149    else
150       SSH_AGENT_PID=1
151    fi
152    if kill -0 $SSH_AGENT_PID ; then
153       :
154    else
155       eval `ssh-agent`
156       ssh-add $HOME/.ssh/id_rsa
157       touch $HOME/.ssh/agent_var ; chmod 600 $HOME/.ssh/agent_var
158       echo "export SSH_AGENT_PID=$SSH_AGENT_PID" > $HOME/.ssh/agent_var
159       echo "export SSH_AUTH_SOCK=$SSH_AUTH_SOCK" >> $HOME/.ssh/agent_var
160    fi
161 }
162
163 if [ -z "$SSH_AGENT_PID" ] ; then
164     prepare_ssh
165 fi
166
167 archive_this_dir() {
168         if [ -z "$1" ] ; then
169                 echo "Usage: archive_this_dir LABEL"
170                 return 1
171         fi
172         ARCHIVE_TO_CD $1 $PWD 0xEA8CFEDE
173 }
174
175 archive_this_dir_as_pics() {
176         if [ -z "$1" ] ; then
177                 echo "Usage: archive_this_dir_as_pics LABEL"
178                 return 1
179         fi
180         ARCHIVE_PICTURES_TO_CD $1 $PWD 0xEA8CFEDE
181 }
182
183 gpg_recv_key() {
184         gpg --keyserver wwwkeys.pgp.net --keyserver-options honor-http-proxy --recv-keys $@
185 }
186
187 ### highlight current line's {} pairs
188 ### yes, this functions doesn't work correct in all situations,
189 ### but it's a nice thing
190 highlight() {
191    line=$*
192    i=0
193    j=0
194    strlen=$#line
195    while [ $i -le $strlen ] ; do
196       i=$[i+1]
197       x=$line[$i]
198       case $x in
199          (\{) j=$[j+1] ; eval print -n $"COLOR$j"$"x"$"COLOROFF" ;;
200          (\})  eval print -n $"COLOR$j"$"x"$"COLOROFF" ; j=$[j-1] ;;
201          (*) print -n $x ;;
202       esac
203    done
204    print $COLOROFF
205 }
206
207 NEW() {
208     vim -c "se tw=70" `date +%Y%m%d-%R`.txt
209 }
210
211 ### set xterm's icon text, its titletext, or both at once
212 seticontext() {
213    print "\033]1;$@\007"
214 }
215 settitletext() {
216    print "\033]2;$@\007"
217 }
218 settitle() {
219    print "\033]0;$@\007"
220 }
221
222 ### a function for setting up proxy settings
223 set_proxy() {
224 export http_proxy="http://proxy:3128"
225 export https_proxy="http://proxy:3128"
226 export ftp_proxy="http://proxy:3128"
227 }
228
229 namedir () { eval "$1=$PWD" ; eval "echo  ~$1" }
230
231 ### run help on a vim help topic
232 vimhelp () { vim -c "help $1" -c on -c "au! VimEnter *" }
233 gvimhelp () { gvim -c "help $1" -c on -c "au! VimEnter *" }
234
235 acroread() {
236    LANG=C command acroread $@
237 }
238 galeon() {
239    LANG=de_DE command galeon $@
240 }
241 aumix() {
242    LANG=en command aumix $@
243 }
244 function startx() {
245    command startx "$@" >& ~/.startx.out
246 }
247
248
249 function precmd {
250 # echo -n "\e]2;$LOGNAME@$(hostname): $(pwd)\a"
251 #  if [ "$TERM" = "screen-w" ] ; then
252 #    perl ~/bin/screen_hardstatus.pl $MYTTY $USER $HOST &!
253 #   PROMPT=$(perl ~/bin/screen_hardstatus.pl " " $USER $HOST $ZSH_VERSION)
254    apm=$(apm|sed -e 's/%/%%/')
255    PROMPT="${green}$(uptime) $nocolor
256 ${white_on_blue}--INSERT--${cyan}  zsh version: $ZSH_VERSION $yellow Return Code: %? $nocolor
257 $blue%h $red%n@%m ${yellow}TTY:%l$cyan - $apm
258 $cyan%~>$nocolor "
259    # PROMPT="$PROMPT$WHO\n"
260 #  fi
261
262     case "$jobstates" in
263     (*running*suspended*)
264       psvar[1]="There are running and stopped jobs.";;
265     (*suspended*running*)
266       psvar[1]="There are running and stopped jobs.";;
267     (*suspended*)
268       psvar[1]="There are stopped jobs.";;
269     (*running*)
270       psvar[1]="There are running jobs.";;
271     (*)
272       psvar[1]="";;
273     esac
274 }
275
276 # pipe jobs to less
277 jless() {
278    typeset -x -A tmpstates
279    for i in $jobstates[(I)*] 
280    do
281       tmpstates[$i]=$jobstates[$i]
282    done
283    for i in $tmpstates[(I)*]
284    do
285       echo "[$i]\t$tmpstates[$i]"
286    done  | sort -n |  less
287    unset tmpstates
288 }
289
290 function dmalloc { eval `command dmalloc -b $*` }
291
292 ### KEY BINDINGS
293 # vi keybindings
294 bindkey -v
295
296 bindkey "\e[A" history-beginning-search-backward
297 bindkey "\e[B" history-beginning-search-forward
298 bindkey "\e[C" forward-char
299 bindkey "\e[D" backward-char
300 bindkey "^Xq" push-line
301 bindkey "^Xr" history-incremental-search-backward
302 bindkey "^Xs" history-incremental-search-forward
303 bindkey "^X_" insert-last-word
304 bindkey "^Xa" accept-and-hold
305 bindkey "^X^H" run-help
306 bindkey "^Xh" _complete_help
307 bindkey "^I" expand-or-complete
308 bindkey "^E" expand-word
309 bindkey "^N" menu-complete
310 bindkey "^P" reverse-menu-complete
311 bindkey -M vicmd "^R" redo
312 bindkey -M vicmd "u" undo
313 bindkey -M vicmd "ga" what-cursor-position
314
315
316 ### VI MODE EXTENSIONS
317 redisplay() {
318    builtin zle .redisplay
319 #   L=$[LINES - 1]
320 #   echo -n "\033[$L;0;H"
321    ( true ; show_mode "INSERT") &!
322 }
323 redisplay2() {
324    builtin zle .redisplay
325 #   L=$[LINES - 1]
326 #   echo -n "\033[$L;0;H"
327    (true ; show_mode "NORMAL") &!
328 }
329 zle -N redisplay
330 zle -N redisplay2
331 bindkey -M viins "^X^R" redisplay
332 bindkey -M vicmd "^X^R" redisplay2
333
334 screenclear () {
335    echo -n "\033[2J\033[400H"
336 #repeat $[LINES - 2] echo
337    builtin zle .redisplay
338 #   builtin zle .clear-screen
339    (true ; show_mode "INSERT") &!
340 }
341 zle -N screenclear
342 bindkey "\f" screenclear
343
344 screenclearx () {
345    # print -n '\e7'
346    repeat 2 print 
347    local MYLINE="$LBUFFER$RBUFFER"
348    highlight $MYLINE
349    repeat 4 print 
350    builtin zle redisplay
351    # print -n '\e8'
352 #   print "${COLORX}Hit Enter to continue${COLOROFF}"
353 #   read -k
354 }
355 zle -N screenclearx
356 bindkey "^Xl" screenclearx
357 #bindkey "^L" screenclearx
358
359
360
361 show_mode() {
362    local COL
363    local x
364    COL=$[COLUMNS-3]
365    COL=$[COL-$#1]
366    #x=$(wc -l $PREBUFFER)
367    x=$(echo $PREBUFFER | wc -l )
368    x=$[x+1]
369 #   echo -n "\e7\e[0;$COL;H"
370    echo -n "\e7\e[$x;A\e[0;G"
371    echo -n ""
372 #    c='`'
373 #    echo -n "\e7\e[5A\e[0$c"
374    echo -n "\e[0;37;44m--$1--\e[0m"
375    echo -n "\e8"
376 }
377
378 ###       vi-add-eol (unbound) (A) (unbound)
379 ###              Move  to the end of the line and enter insert mode.
380
381 vi-add-eol() {
382    show_mode "INSERT"
383    builtin zle .vi-add-eol
384 }
385 zle -N vi-add-eol
386 bindkey -M vicmd "A" vi-add-eol
387
388 ###       vi-add-next (unbound) (a) (unbound)
389 ###              Enter insert mode after the  current  cursor  posi­
390 ###              tion, without changing lines.
391
392 vi-add-next() {
393    show_mode "INSERT"
394    builtin zle .vi-add-next
395    # OLDLBUFFER=$LBUFFER
396    # OLDRBUFFER=$RBUFFER
397    # NNUMERIC=$NUMERIC
398    # bindkey -M viins "\e" vi-cmd-mode-a
399 }
400 zle -N vi-add-next
401 bindkey -M vicmd "a" vi-add-next
402
403 #vi-cmd-mode-a() {
404 #   show_mode "NORMAL"
405 #   STRING="LLBUFFER=\${LBUFFER:s/$OLDLBUFFER//}"
406 #   eval $STRING
407 #   STRING="RRBUFFER=\${RBUFFER:s/$OLDRBUFFER/}"
408 #   eval $STRING
409 #   INS="$LLBUFFER$RRBUFFER"
410 #   LBUFFER=$OLDLBUFFER
411 #   repeat $NNUMERIC LBUFFER="$LBUFFER$INS"
412 #   builtin zle .vi-cmd-mode
413 #   unset LLBUFFER RRBUFFER NNUMERIC INS
414 #   bindkey -M viins "\e" vi-cmd-mode
415 #}
416 #zle -N vi-cmd-mode-a
417
418 ###       vi-change (unbound) (c) (unbound)
419 ###              Read a movement command from the keyboard, and kill
420 ###              from  the  cursor  position  to the endpoint of the
421 ###              movement.  Then enter insert mode.  If the  command
422 ###              is vi-change, change the current line.
423
424 vi-change() {
425    show_mode "INSERT"
426    builtin zle .vi-change
427 }
428 zle -N vi-change
429 bindkey -M vicmd "c" vi-change
430
431 ###       vi-change-eol (unbound) (C) (unbound)
432 ###              Kill  to the end of the line and enter insert mode.
433
434 vi-change-eol() {
435    show_mode "INSERT"
436    builtin zle .vi-change-eol
437 }
438 zle -N vi-change-eol
439 bindkey -M vicmd "C" vi-change-eol
440
441 ###       vi-change-whole-line (unbound) (S) (unbound)
442 ###              Kill the current line and enter insert mode.
443
444 vi-change-whole-line() {
445    show_mode "INSERT"
446    builtin zle .vi-change-whole-line
447 }
448 zle -N vi-change-whole-line
449 bindkey -M vicmd "S" vi-change-whole-line
450
451 ###       vi-insert (unbound) (i) (unbound)
452 ###              Enter insert mode.
453
454 vi-insert() {
455    show_mode "INSERT"
456    builtin zle .vi-insert
457 }
458 zle -N vi-insert
459 bindkey -M vicmd "i" vi-insert
460
461 ###       vi-insert-bol (unbound) (I) (unbound)
462 ###              Move to the first non-blank character on  the  line
463 ###              and enter insert mode.
464
465 vi-insert-bol() {
466    show_mode "INSERT"
467    builtin zle .vi-insert-bol
468 }
469 zle -N vi-insert-bol
470 bindkey -M vicmd "I" vi-insert-bol
471
472 ###       vi-open-line-above (unbound) (O) (unbound)
473 ###              Open a line above the cursor and enter insert mode.
474
475 vi-open-line-above() {
476    show_mode "INSERT"
477    builtin zle .vi-open-line-above
478 }
479 zle -N vi-open-line-above
480 bindkey -M vicmd "O" vi-open-line-above
481
482 ###       vi-open-line-below (unbound) (o) (unbound)
483 ###              Open a line below the cursor and enter insert mode.
484
485 vi-open-line-below() {
486    show_mode "INSERT"
487    builtin zle .vi-open-line-below
488 }
489 zle -N vi-open-line-below
490 bindkey -M vicmd "o" vi-open-line-below
491
492 ###       vi-substitute (unbound) (s) (unbound)
493 ###              Substitute the next character(s).
494
495 vi-substitute() {
496    show_mode "INSERT"
497    builtin zle .vi-substitute
498 }
499 zle -N vi-substitute
500 bindkey -M vicmd "s" vi-substitute
501
502
503 ###       vi-replace (unbound) (R) (unbound)
504 ###              Enter overwrite mode.
505 ###
506
507 vi-replace() {
508    show_mode "REPLACE"
509    builtin zle .vi-replace
510 }
511 zle -N vi-replace
512 bindkey -M vicmd "R" vi-replace
513
514 ###       vi-cmd-mode (^X^V) (unbound) (^[)
515 ###              Enter  command  mode;  that  is, select the `vicmd'
516 ###              keymap.  Yes, this is bound  by  default  in  emacs
517 ###              mode.
518
519 vi-cmd-mode() {
520    show_mode "NORMAL"
521    builtin zle .vi-cmd-mode
522 }
523 zle -N vi-cmd-mode
524 bindkey -M viins "\e" vi-cmd-mode
525
526
527
528 ###       vi-oper-swap-case
529 ###              Read a movement command from the keyboard, and swap
530 ###              the case of all characters from the cursor position
531 ###              to the endpoint of the movement.  If  the  movement
532 ###              command  is vi-oper-swap-case, swap the case of all
533 ###              characters on the current line.
534 ###
535
536 bindkey -M vicmd "g~" vi-oper-swap-case
537
538
539
540 ### LOAD EXTENSIONS
541 zmodload zsh/parameter
542 # zmodload zftp
543
544 ### MISC
545
546 umask 022
547 mesg n
548 ulimit -c unlimited
549
550 # create iab's for my mutt-aliases to be sourced from within vim
551 # cat ~/.muttrc.aliases | sed -e 's/^#/"/' -e 's/^alias/iab/' > ~/.vim_mutt.aliases
552
553 # Colourize cursor on Linux console
554 # echo -e "\033[?17;216;64c"
555 # echo -e "\033[?17;215;55c"
556
557 ######   ### a clock in the prompt. Yes, this _is_ cool. But sometimes, it interferes with
558 ######   ### other things.
559 ######   ### I no longer need it as I have a running clock on my desktop when running
560 ######   ### X and a clock in screen's hardstatus line when running on the console
561 ######   trap CRON ALRM
562 ######   TMOUT=1
563 ######   CRON() {
564 ######      local STRING
565 ######      local COL
566 ######      local x
567 ######      STRING=$(date)
568 ######      COL=$[COLUMNS-5]
569 ######      COL=$[COL-$#STRING]
570 ######      x=$(echo $PREBUFFER | wc -l )
571 ######      x=$[x+1]
572 ######      echo -n "\e7\e[$x;A\e[$COL;G\e[0;37;44m-- $STRING --\e[0m\e8"
573 ######   }
574
575 ### thanks to Riviera for this one...
576 ### don't use it at the moment
577 #*Riviera* chpwd () {
578 #*Riviera*         dirs >| $ZDOTDIR/zsave/zsh_dirstack_tty$tti
579 #*Riviera* }
580 #*Riviera* cdt () {
581 #*Riviera*         cd $(cut -d\  -f1 ~/.zsh/zsave/zsh_dirstack_tty$1|sed s/~/${HOME:gs./.\\\\/}/g)
582 #*Riviera* }
583 #*Riviera* und
584 #*Riviera* in .zshrc
585 #*Riviera* dirs $(sed s/~/${HOME:gs./.\\\\/}/g $ZDOTDIR/zsave/zsh_dirstack_tty$tti)
586 #*Riviera* und in .zlogout nochmal das, was in chpwd steht.
587 #*Riviera*
588 #*Riviera* Damit kann ich 1. mit "cdt 3" in das in tty3 aktuelle Verzeichnis wechseln
589 #*Riviera* und 2. nach nem login wieder denselben dirstack vorfinden auf derselben tty wie vorm ausloggen.
590 #*Riviera* tti=$(tty)
591 #*Riviera* tti=${tti#*/dev/tty}
592 #*Riviera* Kommt noch dazu. Eigentlich hatte ich dann immer noch
593 #*Riviera* case $tti in
594 #*Riviera*  [A-Za-z]*)tti=${tti%*[0-9]};;
595 #*Riviera*  *);;
596 #*Riviera* esac
597 #*Riviera* aber das hab ich rausgenommen
598 #*Riviera* :)
599
600
601 ### COMPLETION AND MORE
602
603 # The following lines were added by compinstall
604 [[ -z $fpath[(r)$_compdir] ]] && fpath=($fpath $_compdir)
605 #fpath=(/home/tkoehler/zsh/foo $fpath)
606
607 autoload -U compinit
608 compinit
609
610 local _myhosts
611 _myhosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[0-9]*}%%\ *}%%,*})
612 # zstyle ':completion:*' hosts $_myhosts
613
614 zstyle ':completion:*' auto-description 'specify %d'
615 zstyle ':completion:*' completer _complete _ignored _match _correct _approximate _prefix
616 zstyle ':completion:*' file-sort name
617 zstyle ':completion:*' format 'Completing %d'
618 zstyle ':completion:*' group-name ''
619 ## domains to use for mutt user@host<TAB> completion
620 zstyle '*mutt*' hosts 'picard.franken.de' 'vim.org'
621 zstyle '*' hosts 'picard.franken.de' 'unser.linux.laeuft.auf.s390.org'
622 zstyle ':completion:*' list-prompt '%SAt %p: Hit TAB for more, or the character to insert%s'
623 zstyle ':completion:*' matcher-list 'r:|[._-]=** r:|=**' 'l:|=* r:|=*' 'm:{a-z}={A-Z}'
624 zstyle ':completion:*' match-original both
625 zstyle ':completion:*' max-errors 3
626 zstyle ':completion:*' menu select=0
627 zstyle ':completion:*' prompt 'CORRECT (%e errors found) > '
628 zstyle ':completion:*' special-dirs true
629 zstyle ':completion:*' squeeze-slashes true
630 zstyle '*mutt*' users vim vim-dev tkoehler
631 zstyle '*' users thomas tkoehler
632 zstyle ':completion:*' verbose true
633 zstyle :compinstall filename '/home/tkoehler/.zshrc'
634 # End of lines added by compinstall
635 #fpath=(/usr/share/doc/zsh/examples/Functions/Misc/ $fpath)
636 #autoload nslookup
637
638
639 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
640 zstyle ':completion:*:*:*:*:hosts' list-colors '=(#b)(*)(to.com)=34;40=35;40' '=(#b)(*)(mayn.de)=36;40=35;40' '=unser.linux.laeuft.auf.s390.org=33;40' '=*=31;40'
641 zstyle ':completion:*:*:*:*:users' list-colors '=*=32;40'
642
643 autoload -U zfinit
644 zfinit