initial checkin
[zsh-lovers.git] / zsh_people / marijan_peh / zshrc
1 ## $Id: .zshrc,v1.07 for zsh4.x
2 ## Thursday May 23 22:36:11 CEST 2002
3 ## Created by Marijan Peh <marijan.peh@hi.hinet.hr>
4 ## Latest version on http://free-po.hinet.hr/MarijanPeh/files/zshrc
5 ##
6 ## With sugestions from:
7 ## Bart Schaefer <schaefer@brasslantern.com>
8 ## Mario Jose Medjeral <mario@medjeral.demon.co.uk>
9 ##
10 ## This file is distributed in the hope that it will be useful,
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 ##
14 ## Use and modify to personal taste.  Copying this file without
15 ## thought will needlessly increase zsh's memory usage and startup time.
16
17 ## others can't rwx my files
18 ## this is very paranoid :-) set to 022 if you wish
19 umask 077
20
21 ## get keys working
22 case $TERM in 
23         linux)
24         bindkey "^[[2~" yank
25         bindkey "^[[3~" delete-char
26         bindkey "^[[5~" up-line-or-history ## PageUp
27         bindkey "^[[6~" down-line-or-history ## PageDown
28         bindkey "^[[1~" beginning-of-line
29         bindkey "^[[4~" end-of-line
30         bindkey "^[e" expand-cmd-path ## C-e for expanding path of typed command
31         bindkey "^[[A" up-line-or-search ## up arrow for back-history-search
32         bindkey "^[[B" down-line-or-search ## down arrow for fwd-history-search
33         bindkey " " magic-space ## do history expansion on space
34 ;;
35         *xterm*|rxvt|(dt|k|E)term)
36         bindkey "^[[2~" yank
37         bindkey "^[[3~" delete-char
38         bindkey "^[[5~" up-line-or-history ## PageUp
39         bindkey "^[[6~" down-line-or-history ## PageDown
40         bindkey "^[[7~" beginning-of-line
41         bindkey "^[[8~" end-of-line
42         bindkey "^[e" expand-cmd-path ## C-e for expanding path of typed command
43         bindkey "^[[A" up-line-or-search ## up arrow for back-history-search
44         bindkey "^[[B" down-line-or-search ## down arrow for fwd-history-search
45         bindkey " " magic-space ## do history expansion on space
46 ;;
47 esac
48
49 ## use hard limits, except for a smaller stack and no core dumps
50 unlimit
51 limit stack 8192
52 limit core 0
53 limit -s
54
55 ## set path and cdpath
56 ## think about setting path,cdpath,manpath & fpath in .zshenv
57 path=($path /bin /usr/bin /usr/X11R6/bin)
58 path=($path /usr/local/bin $HOME/bin)
59 cdpath=(~ ..) ## on cd command offer dirs in home and one dir up.
60
61 ## for root add sbin dirs to path
62 if (( EUID == 0 )); then
63         path=($path /sbin /usr/sbin /usr/local/sbin)
64 fi
65
66 ## aditional dir to look for function definitions
67 fpath=($fpath ~/.zfunc) ## EDIT ## or comment if u don't need it.
68
69 ## set manpath
70 manpath=(/usr/local/man /usr/share/man) ## EDIT ##
71 manpath=($manpath /usr/X11R6/man /usr/man /usr/lib/perl5/man) ## EDIT ##
72
73 ## remove duplicate entries from path,cdpath,manpath & fpath
74 typeset -U path cdpath manpath fpath
75
76 ## The file to save the history in when an interactive shell exits.
77 ## If unset, the history is not saved.
78 HISTFILE=${HOME}/.zsh_history
79
80 ## The maximum number of events stored in the internal history list.
81 HISTSIZE=1000
82
83 ## The maximum number of history events to save in the history file.
84 SAVEHIST=1000
85
86 ## maximum size of the directory stack.
87 DIRSTACKSIZE=20
88
89 ## file for mail checking
90 MAIL=/var/mail/$USERNAME
91
92 ## The interval in seconds between checks for new mail.
93 MAILCHECK=60
94
95 ## The interval in seconds between checks for login/logout activity
96 ## using the watch parameter.
97 LOGCHECK=60
98
99 ## The baud rate of the current connection.  Used by the line editor
100 ## update mechanism to compensate for a slow terminal by delaying
101 ## updates until necessary.
102 #BAUD=38400 ## to turn off set this to zero
103
104 ## If nonnegative, commands whose combined user and system execution times
105 ## (measured in seconds) are greater than this value have timing
106 ## statistics printed for them.
107 #REPORTTIME=1
108
109 ## If set, this gives a string of characters, which can use
110 ## all the same codes as the bindkey command as described in
111 ## section The zsh/zle Module, that will be output to
112 ## the terminal instead of beeping.
113 ## This may have a visible instead of an audible effect;
114 ## for example, the string `\e[?5h\e[?5l' on a vt100 or xterm will have
115 ## the effect of flashing reverse video on and off (if you usually use reverse
116 ## video, you should use the string `\e[?5l\e[?5h' instead).  This takes
117 ## precedence over the NOBEEP option.
118 #ZBEEP='\e[?5h\e[?5l'
119
120 ## The directory to search for shell startup files (.zshrc, etc),
121 ## if not $HOME.
122 #ZDOTDIR=~/.zsh
123
124
125
126 ## (( ${+*} )) = if variable is set don't set it anymore
127 (( ${+USER} )) || export USER=$USERNAME
128 (( ${+HOSTNAME} )) || export HOSTNAME=$HOST
129 (( ${+EDITOR} )) || export EDITOR=`which vim`
130 (( ${+VISUAL} )) || export VISUAL=`which vim`
131 (( ${+FCEDIT} )) || export FCEDIT=`which vim`
132 (( ${+PAGER} )) || export PAGER=`which less`
133 (( ${+MAILCALL} )) || export MAILCALL='*** NEW MAIL ***' ## new mail warning
134 (( ${+LESSCHARSET} )) || export LESSCHARSET='latin1' ## charset for pager
135 (( ${+LESSOPEN} )) || export LESSOPEN='|lesspipe.sh %s'
136 (( ${+MOZILLA_HOME} )) || export MOZILLA_HOME='/usr/lib/netscape' ## EDIT ##
137 (( ${+MOZILLA_NO_ASYNC_DNS} )) || export MOZILLA_NO_ASYNC_DNS='True'
138 (( ${+NNTPSERVER} )) || export NNTPSERVER=''  ## news server ## EDIT ##
139 (( ${+CC} )) || export CC='gcc' ## or egcs or whatever
140
141 ## compiler opt. flags !!! use this with caution !!! or dont use et all
142 case $CPUTYPE in
143         i686)
144         (( ${+CFLAGS} )) || export CFLAGS='-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions'
145 ;;
146         i586)
147         (( ${+CFLAGS} )) || export CFLAGS='-O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr -malign-double -fno-exceptions'
148 ;;
149         i486)
150         (( ${+CFLAGS} )) || export CFLAGS='-O3  -funroll-all-loops -malign-double -mcpu=i486 -march=i486 -fomit-frame-pointer -fno-exceptions'
151 ;;
152         *)
153         (( ${+CXXFLAGS} )) || export CXXFLAGS=$CFLAGS
154 esac
155
156 ## variables for BitchX (irc client)
157 (( ${+IRCNAME} )) || export IRCNAME='' ## EDIT ##
158 (( ${+IRCNICK} )) || export IRCNICK='' ## EDIT ##
159 (( ${+IRCSERVER} )) || export IRCSERVER='' ## EDIT ##
160
161 ## auto logout after timeout in seconds
162 TMOUT=1800
163
164 ## if we are in X then disable TMOUT
165 case $TERM in
166         *xterm*|rxvt|(dt|k|E)term)
167         unset TMOUT
168         ;;
169 esac
170
171 #bindkey -v  ## vi key bindings
172 bindkey -e  ## emacs key bindings
173
174 ## turn on full featured completion (minimal needs: zsh3.1)
175 if [[ "$ZSH_VERSION" == (3.1|4)* ]]; then
176         autoload -U compinit
177         compinit -C
178 else
179         print "Advanced completion system not found; ignoring zstyle settings."
180         function zstyle { }
181 fi
182
183 ## set colors for GNU ls ; set this to right file
184 eval `dircolors /etc/DIR_COLORS` ## EDIT ##
185
186 ## Color completion
187 ## this module should be automatically loaded if u use menu selection
188 ## but to be sure we do it here
189 zmodload -i zsh/complist
190
191 ## Someone once accused zsh of not being as complete as Emacs, because it
192 ## lacks Tetris and an adventure game.
193 autoload -U tetris
194 zle -N tetris
195 bindkey "^Xt" tetris ## C-x-t to play
196
197 ## This allows incremental completion of a word.
198 ## After starting this command, a list of completion
199 ## choices can be shown after every character you
200 ## type, which you can delete with ^h or DEL.
201 ## RET will accept the completion so far.
202 ## You can hit TAB to do normal completion, ^g to            
203 ## abort back to the state when you started, and ^d to list the matches.
204 autoload -U incremental-complete-word
205 zle -N incremental-complete-word
206 bindkey "^Xi" incremental-complete-word ## C-x-i
207
208 ## This function allows you type a file pattern,
209 ## and see the results of the expansion at each step.
210 ## When you hit return, they will be inserted into the command line.
211 autoload -U insert-files
212 zle -N insert-files
213 bindkey "^Xf" insert-files ## C-x-f
214
215 ## This set of functions implements a sort of magic history searching.
216 ## After predict-on, typing characters causes the editor to look backward
217 ## in the history for the first line beginning with what you have typed so
218 ## far.  After predict-off, editing returns to normal for the line found.
219 ## In fact, you often don't even need to use predict-off, because if the
220 ## line doesn't match something in the history, adding a key performs
221 ## standard completion - though editing in the middle is liable to delete
222 ## the rest of the line.
223 autoload -U predict-on
224 zle -N predict-on
225 zle -N predict-off
226 bindkey "^X^Z" predict-on ## C-x C-z
227 bindkey "^Z" predict-off ## C-z
228
229 ## This is a multiple move based on zsh pattern matching.  To get the full
230 ## power of it, you need a postgraduate degree in zsh.
231 ## Read /path_to_zsh_functions/zmv for some basic examples.
232 #autoload -U zmv
233
234 ## watch for my friends
235 ## An array (colon-separated list) of login/logout events to report.
236 ## If it contains the single word `all', then all login/logout events
237 ## are reported.  If it contains the single word `notme', then all
238 ## events are reported as with `all' except $USERNAME.
239 ## An entry in this list may consist of a username,
240 ## an `@' followed by a remote hostname,
241 ## and a `%' followed by a line (tty).
242 #watch=( $(<~/.friends) )  ## watch for people in $HOME/.friends file
243 watch=(notme)  ## watch for everybody but me
244 LOGCHECK=60  ## check every ... seconds for login/logout activity
245
246 ## The format of login/logout reports if the watch parameter is set.
247 ## Default is `%n has %a %l from %m'.
248 ## Recognizes the following escape sequences:
249 ## %n = name of the user that logged in/out.
250 ## %a = observed action, i.e. "logged on" or "logged off".
251 ## %l = line (tty) the user is logged in on.
252 ## %M = full hostname of the remote host.
253 ## %m = hostname up to the first `.'.
254 ## %t or %@ = time, in 12-hour, am/pm format.
255 ## %w = date in `day-dd' format.
256 ## %W = date in `mm/dd/yy' format.
257 ## %D = date in `yy-mm-dd' format.
258 WATCHFMT='%n %a %l from %m at %t.'
259
260 ## set prompts ####
261 ## choose just one
262 #PS1=$'%{\e[0;36m%}%n%{\e[0m%}:%{\e[0;31m%}%3~%{\e[0m%}%# ' ## user:~%
263 #PS1=$'%{\e[0;36m%}%n%{\e[0m%}:%{\e[0;31m%}%3~%{\e[0m%}%B>%b ' ## user:~>
264 #PS1='%n@%m:%4c%1v> ';RPS1=$'%{\e[0;36m%}%D{%A %T}%{\e[0m%}' ## user@host:~> ; Day time(hh:mm:ss)
265 #PS1='%B[%b%n%B:%b%~%B]%b$ ' ## [user:~]$
266 #PS1=$'%{\e[0;36m%}%n%{\e[0m%}:%20<..<%~%B>%b ' ## user:..c/vim-common-6.0>
267 #PS1=$'%{\e[0;36m%}%#%{\e[0m%} ';RPS1=$'%{\e[0;31m%}%~%{\e[0m%}' ## % ; ~
268 #PS1=$'%{\e[0;36m%}%n%{\e[0m%}%{\e[0;31m%}%#%{\e[0m%} ';RPS1=$'%{\e[0;31m%}%~%{\e[0m%}' ## user% ; ~
269 #PS1='%# ';RPS1='%B%~%b' ## % ; ~ : no colors
270 #PS1='%n@%m:%B%~%b> ' ## user@host:~> : no colors
271
272 ## or use neat prompt themes included with zsh
273 autoload -U promptinit
274 promptinit
275 ## Currently available prompt themes:
276 ## adam1 adam2 bart bigfade clint elite2 elite
277 ## fade fire off oliver redhat suse walters zefram
278 prompt elite2
279
280 ## don't ask me 'do you wish to see all XX possibilities' before menu selection
281 LISTPROMPT=''
282
283 ## SPROMPT - the spelling prompt
284 SPROMPT='zsh: correct '%R' to '%r' ? ([Y]es/[N]o/[E]dit/[A]bort) '
285
286 ## functions for displaying neat stuff in *term title
287 case $TERM in
288         *xterm*|rxvt|(dt|k|E)term)
289         ## display user@host and full dir in *term title
290         precmd () {
291                 print -Pn  "\033]0;%n@%m %~\007"
292                 #print -Pn "\033]0;%n@%m%#  %~ %l  %w :: %T\a" ## or use this
293                 }
294         ## display user@host and name of current process in *term title
295         preexec () {
296                 print -Pn "\033]0;%n@%m <$1> %~\007"
297                 #print -Pn "\033]0;%n@%m%#  <$1>  %~ %l  %w :: %T\a" ## or use this
298                 }
299         ;;
300 esac
301
302 ## aliases ####
303 alias p='ps -fu $USER'
304 alias v='less'
305 alias h='history'
306 alias z='vim ~/.zshrc;src'
307 alias gvim='gvim -U ~/.gvimrc'
308 alias g='gvim'
309 alias vi='vim'
310 alias mv='nocorrect mv -i'
311 alias cp='nocorrect cp -i'
312 alias rm='nocorrect rm -i'
313 alias mkdir='nocorrect mkdir'
314 alias man='nocorrect man'
315 alias find='noglob find'
316 alias ls='ls --color=auto'
317 alias l='ls'
318 alias ll='ls -l'
319 alias l.='ls -A'
320 alias ll.='ls -al'
321 alias lsa='ls -ls .*' ## list only file beginning with "."
322 alias lsd='ls -ld *(-/DN)' ## list only dirs
323 alias du1='du -hs *(/)' ## du with depth 1
324 alias u='uptime'
325 alias j='ps ax'
326 alias ..='cd ..'
327 alias cd..='cd ../..'
328 alias cd....='cd ../../..'
329 alias cd.....='cd ../../../..'
330 alias cd/='cd /'
331 alias sd='export DISPLAY=:0.0' ## export DISPLAY=:0.0
332 alias x='startx &! exit'
333 alias x8='startx -- -bpp 8 &! exit'                         
334 alias x16='startx -- -bpp 16 &! exit'                       
335 alias x24='startx -- -bpp 24 &! exit'                       
336 alias x32='startx -- -bpp 32 &! exit'
337 alias dpms='sleep 2 ; clear ; xset dpms force off'
338 ## global aliases, this is not good but it's useful
339 alias -g L='|less'
340 alias -g G='|grep'
341 alias -g T='|tail'
342 alias -g H='|head'
343 alias -g W='|wc -l'
344 alias -g S='|sort'
345 alias -g US='|sort -u'
346 alias -g NS='|sort -n'
347 alias -g RNS='|sort -nr'
348 alias -g N='&>/dev/null&'
349
350 ## changing terminal type
351 alias v1='export TERM=vt100'
352 alias v2='export TERM=vt220'
353 alias vx='export TERM=xterm-color'
354
355 ## functions ####
356 ## csh compatibility
357 setenv () { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" }
358
359 ## find process to kill and kill it.
360 pskill ()
361
362         local pid
363         pid=$(ps -ax | grep $1 | grep -v grep | awk '{ print $1 }')
364         echo -n "killing $1 (process $pid)..."
365         kill -9 $=pid
366         echo "slaughtered."
367 }
368
369 ## invoke this every time when u change .zshrc to
370 ## recompile it.
371 src ()
372 {
373         autoload -U zrecompile
374         [ -f ~/.zshrc ] && zrecompile -p ~/.zshrc
375         [ -f ~/.zcompdump ] && zrecompile -p ~/.zcompdump
376         [ -f ~/.zshrc.zwc.old ] && rm -f ~/.zshrc.zwc.old
377         [ -f ~/.zcompdump.zwc.old ] && rm -f ~/.zcompdump.zwc.old
378         source ~/.zshrc
379 }
380
381 ## make screenshot of current desktop (use import from ImageMagic)
382 sshot ()
383 { sleep 5; import -window root desktop.jpg }
384
385 ## find all suid files
386 suidfind ()
387 { ls -l /**/*(su0x) }
388
389 ## restore all .bak files
390 restore_bak ()
391 {
392 autoload -U zmv
393 zmv '(**/)(*).bak' '$1$2'
394 }
395
396 ## display processes tree in less
397 pst ()
398 { pstree -p $* | less -S }
399
400 ## search for various types or README file in dir and display them in $PAGER
401 readme ()
402 {
403         local files
404         files=(./(#i)*(read*me|lue*m(in|)ut)*(ND))
405         if (($#files))
406         then $PAGER $files
407         else
408         print 'No README files.'
409         fi
410 }
411
412 ## completions ####
413 ## General completion technique
414 ## complete as much u can ..
415 zstyle ':completion:*' completer _complete _list _oldlist _expand _ignored _match _correct _approximate _prefix
416 ## complete less
417 #zstyle ':completion:*' completer _expand _complete _list _ignored _approximate
418 ## complete minimal
419 #zstyle ':completion:*' completer _complete _ignored
420
421 ## allow one error
422 #zstyle ':completion:*:approximate:*' max-errors 1 numeric
423 ## allow one error for every three characters typed in approximate completer
424 zstyle -e ':completion:*:approximate:*' max-errors \
425     'reply=( $(( ($#PREFIX+$#SUFFIX)/3 )) numeric )'
426
427 ## formatting and messages
428 zstyle ':completion:*' verbose yes
429 zstyle ':completion:*:descriptions' format $'%{\e[0;31m%}%d%{\e[0m%}'
430 zstyle ':completion:*:messages' format $'%{\e[0;31m%}%d%{\e[0m%}'
431 zstyle ':completion:*:warnings' format $'%{\e[0;31m%}No matches for: %d%{\e[0m%}'
432 zstyle ':completion:*:corrections' format $'%{\e[0;31m%}%d (errors: %e)%{\e[0m%}'
433 zstyle ':completion:*' group-name ''
434
435 ## determine in which order the names (files) should be
436 ## listed and completed when using menu completion.
437 ## `size' to sort them by the size of the file
438 ## `links' to sort them by the number of links to the file
439 ## `modification' or `time' or `date' to sort them by the last modification time
440 ## `access' to sort them by the last access time
441 ## `inode' or `change' to sort them by the last inode change time
442 ## `reverse' to sort in decreasing order
443 ## If the style is set to any other value, or is unset, files will be
444 ## sorted alphabetically by name.
445 zstyle ':completion:*' file-sort name
446
447 ## how many completions switch on menu selection
448 ## use 'long' to start menu compl. if list is bigger than screen
449 ## or some number to start menu compl. if list has that number
450 ## of completions (or more).
451 zstyle ':completion:*' menu select=long
452
453 ## case-insensitive (uppercase from lowercase) completion
454 zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
455 ## case-insensitive (all) completion
456 #zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
457 ## case-insensitive,partial-word and then substring completion
458 #zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
459
460 ## offer indexes before parameters in subscripts
461 zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
462
463 ## insert all expansions for expand completer
464 zstyle ':completion:*:expand:*' tag-order all-expansions
465
466 ## ignore completion functions (until the _ignored completer)
467 zstyle ':completion:*:functions' ignored-patterns '_*'
468
469 ## completion caching
470 zstyle ':completion::complete:*' use-cache 1
471 zstyle ':completion::complete:*' cache-path ~/.zcompcache/$HOST
472
473 ## add colors to completions
474 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
475
476 ## don't complete backup files as executables
477 zstyle ':completion:*:complete:-command-::commands' ignored-patterns '*\~'
478
479 ## filename suffixes to ignore during completion (except after rm command)
480 zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns \
481 '*?.(o|c~|old|pro|zwc)' '*~'
482
483 ## completions for some progs. not in default completion system
484
485 zstyle ':completion:*:*:mpg123:*' file-patterns \
486 '*.(mp3|MP3):mp3\ files *(-/):directories'
487
488 zstyle ':completion:*:*:ogg123:*' file-patterns \
489 '*.(ogg|OGG):ogg\ files *(-/):directories'
490
491 ## generic completions for programs which understand GNU long options(--help)
492
493 compdef _gnu_generic slrnpull make df du
494
495 ## on processes completion complete all user processes
496 zstyle ':completion:*:processes' command 'ps -au$USER'
497
498 ## add colors to processes for kill completion
499 zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
500
501 ## common usernames
502 #users=(jozo tomi peh) ## complete usernames 
503 ## if u have too much users to write in here, use file; change
504 ## 'users=(jozo tomi peh)' to 'users=( $(<~/.somefile) )'
505 #zstyle ':completion:*' users $users
506
507 ## common hostnames
508 #hosts=( $(</etc/hosts) )
509 #zstyle ':completion:*' hosts $hosts
510
511 ## (user,host) pairs
512 ## all my accounts:
513 #my_accounts=(
514 #       {joe,root}@mymachine.com
515 #       jbloggs@myothermachine.com
516 #)
517
518 ## other people's accounts:
519 #other_accounts=(
520 #       {fred,root}@hismachine.com
521 #       vera@hermachine.com
522 #)
523 #zstyle ':completion:*:my-accounts' users-hosts $my_accounts
524 #zstyle ':completion:*:other-accounts' users-hosts $other_accounts
525
526 ## (host, port, user) triples for telnet
527 #telnet_users_hosts_ports=(
528 #       user1@host1:
529 #       user2@host2:
530 #       @mail-server:{smtp,pop3}
531 #       @news-server:nntp
532 #       @proxy-server:8000
533 #)
534 #zstyle ':completion:*:*:telnet:*' users-hosts-ports $telnet_users_hosts_ports
535
536 ## set options (setopt) ####
537 ############################
538 # In the following list, options set by default in all emulations are marked
539 # <D>; those set by default only in csh, ksh, sh, or zsh emulations are marked
540 # <C>, <K>, <S>, <Z> as appropriate.  When listing options 
541 # (by `setopt', `unsetopt', `set -o' or `set +o'), those turned on by default
542 # appear in the list prefixed with `no'. Hence (unless KSH_OPTION_PRINT is set),
543 # `setopt' shows all options whose settings
544 # are changed from the default.
545 # Default options are commented, uncomment them if you want
546 # to be diferent from default
547
548 # ALIASES <D> Expand aliases.
549 #setopt NO_aliases
550
551 # ALL_EXPORT (-a, ksh: -a)
552 # All parameters subsequently defined are automatically exported.
553 #setopt all_export
554
555 # ALWAYS_LAST_PROMPT <D>
556 # If unset, key functions that list completions try to return to the last
557 # prompt if given a numeric argument. If set these functions try to
558 # return to the last prompt if given no numeric argument.
559 #setopt NO_always_last_prompt
560
561 # ALWAYS_TO_END
562 # If a completion is performed with the cursor within a word, and a
563 # full completion is inserted, the cursor is moved to the end of the
564 # word.  That is, the cursor is moved to the end of the word if either
565 # a single match is inserted or menu completion is performed.
566 setopt always_to_end
567
568 # APPEND_HISTORY <D>
569 # If this is set, zsh sessions will append their history list to
570 # the history file, rather than overwrite it. Thus, multiple parallel
571 # zsh sessions will all have their history lists added to the
572 # history file, in the order they are killed.
573 #setopt NO_append_history
574
575 # AUTO_CD (-J)
576 # If a command is issued that can't be executed as a normal command,
577 # and the command is the name of a directory, perform the cd
578 # command to that directory.
579 setopt auto_cd
580
581 # AUTO_LIST (-9) <D>
582 # Automatically list choices on an ambiguous completion.
583 #setopt NO_auto_list
584
585 # AUTO_MENU <D>
586 # Automatically use menu completion after the second consecutive request for
587 # completion, for example by pressing the tab key repeatedly. This option
588 # is overridden by MENU_COMPLETE.
589 #setopt NO_auto_menu
590
591 # AUTO_NAME_DIRS
592 # Any parameter that is set to the absolute name of a directory
593 # immediately becomes a name for that directory, that will be used
594 # by the `%~'
595 # and related prompt sequences, and will be available when completion
596 # is performed on a word starting with `~'.
597 # (Otherwise, the parameter must be used in the form `~param' first.)
598 setopt NO_auto_name_dirs
599
600 # AUTO_PARAM_KEYS <D>
601 # If a parameter name was completed and a following character
602 # (normally a space) automatically inserted, and the next character typed is one
603 # of those that have to come directly after the name (like `}', `:',
604 # etc.), the automatically added character is deleted, so that the character
605 # typed comes immediately after the parameter name.
606 # Completion in a brace expansion is affected similarly: the added character
607 # is a `,', which will be removed if `}' is typed next.
608 #setopt NO_auto_param_keys
609
610 # AUTO_PARAM_SLASH <D>
611 # If a parameter is completed whose content is the name of a directory,
612 # then add a trailing slash instead of a space.
613 #setopt NO_auto_param_slash
614
615 # AUTO_PUSHD (-N)
616 # Make cd push the old directory onto the directory stack.
617 setopt auto_pushd
618
619 # AUTO_REMOVE_SLASH <D>
620 # When the last character resulting from a completion is a slash and the next
621 # character typed is a word delimiter, a slash, or a character that ends 
622 # a command (such as a semicolon or an ampersand), remove the slash.
623 #setopt NO_auto_remove_slash
624
625 # AUTO_RESUME (-W)
626 # Treat single word simple commands without redirection
627 # as candidates for resumption of an existing job.
628 setopt NO_auto_resume
629
630 # BAD_PATTERN (+2) <C> <Z>
631 # If a pattern for filename generation is badly formed, print an error message.
632 # (If this option is unset, the pattern will be left unchanged.)
633 #setopt NO_bad_pattern
634
635 # BANG_HIST (+K) <C> <Z>
636 # Perform textual history expansion, csh-style,
637 # treating the character `!' specially.
638 #setopt NO_bang_hist
639
640 # BARE_GLOB_QUAL <Z>
641 # In a glob pattern, treat a trailing set of parentheses as a qualifier
642 # list, if it contains no `|', `(' or (if special) `~'
643 # characters.  See section Filename Generation.
644 #setopt NO_bare_glob_qual
645
646 # BASH_AUTO_LIST
647 # On an ambiguous completion, automatically list choices when the
648 # completion function is called twice in succession.  This takes
649 # precedence over AUTO_LIST.  The setting of LIST_AMBIGUOUS is
650 # respected.  If AUTO_MENU is set, the menu behaviour will then start
651 # with the third press.  Note that this will not work with
652 # MENU_COMPLETE, since repeated completion calls immediately cycle
653 # through the list in that case.
654 #setopt bash_auto_list
655
656 # BEEP (+B) <D>
657 # Beep on error in ZLE.
658 setopt NO_beep
659
660 # BG_NICE (-6) <C> <Z>
661 # Run all background jobs at a lower priority.  This option
662 # is set by default.
663 #setopt NO_bg_nice
664
665 # BRACE_CCL
666 # Expand expressions in braces which would not otherwise undergo brace
667 # expansion to a lexically ordered list of all the characters.  See
668 # section Brace Expansion.
669 setopt brace_ccl
670
671 # BSD_ECHO <S>
672 # Make the echo builtin compatible with the BSD man page echo(1) command.
673 # This disables backslashed escape sequences in echo strings unless the
674 # -e option is specified.
675 #setopt bsd_echo
676
677 # C_BASES
678 # Output hexadecimal numbers in the standard C format, for example `0xFF'
679 # instead of the usual `16#FF'.  If the option OCTAL_ZEROES is also
680 # set (it is not by default), octal numbers will be treated similarly and
681 # hence appear as `077' instead of `8#77'.  This option has no effect
682 # on the choice of the output base, nor on the output of bases other than
683 # hexadecimal and octal.  Note that these formats will be understood on input
684 # irrespective of the setting of C_BASES.
685 setopt NO_c_bases
686
687 # CDABLE_VARS (-T)
688 # If the argument to a cd command (or an implied cd with the
689 # AUTO_CD option set) is not a directory, and does not begin with a
690 # slash, try to expand the expression as if it were preceded by a
691 # `~' (see section Filename Expansion).
692 setopt cdable_vars
693
694 # CHASE_DOTS
695 # When changing to a directory containing a path segment `..' which would
696 # otherwise be treated as canceling the previous segment in the path (in
697 # other words, `foo/..' would be removed from the path, or if `..' is
698 # the first part of the path, the last part of $PWD would be deleted),
699 # instead resolve the path to the physical directory.  This option is
700 # overridden by CHASE_LINKS.
701 # For example, suppose /foo/bar is a link to the directory /alt/rod.
702 # Without this option set, `cd /foo/bar/..' changes to /foo; with it
703 # set, it changes to /alt.  The same applies if the current directory
704 # is /foo/bar and `cd ..' is used.  Note that all other symbolic
705 # links in the path will also be resolved.
706 setopt NO_chase_dots
707
708
709 # CHASE_LINKS (-w)
710 # Resolve symbolic links to their true values when changing directory.
711 # This also has the effect of CHASE_DOTS, i.e. a `..' path segment
712 # will be treated as referring to the physical parent, even if the preceding
713 # path segment is a symbolic link.
714 setopt NO_chase_links
715
716 # CHECK_JOBS <Z>
717 # Report the status of background and suspended jobs before exiting a shell
718 # with job control; a second attempt to exit the shell will succeed.
719 # NO_CHECK_JOBS is best used only in combination with NO_HUP, else
720 # such jobs will be killed automatically.
721 #setopt NO_check_jobs
722
723 # CLOBBER (+C, ksh: +C) <D>
724 # Allows `>' redirection to truncate existing files,
725 # and `>>' to create files.
726 # Otherwise `>!' or `>|' must be used to truncate a file,
727 # and `>>!' or `>>|' to create a file.
728 #setopt clobber
729
730 # COMPLETE_ALIASES
731 # Prevents aliases on the command line from being internally substituted
732 # before completion is attempted.  The effect is to make the alias a
733 # distinct command for completion purposes.
734 setopt NO_complete_aliases
735
736 # COMPLETE_IN_WORD
737 # If unset, the cursor is set to the end of the word if completion is
738 # started. Otherwise it stays there and completion is done from both ends.
739 setopt complete_in_word
740
741 # CORRECT (-0)
742 # Try to correct the spelling of commands.
743 setopt NO_correct
744
745 # CORRECT_ALL (-O)
746 # Try to correct the spelling of all arguments in a line.
747 setopt correct_all
748
749 # CSH_JUNKIE_HISTORY <C>
750 # A history reference without an event specifier will always refer to the
751 # previous command.  Without this option, such a history reference refers
752 # to the same event as the previous history reference, defaulting to the
753 # previous command.
754 #setopt csh_junkie_history
755
756 # CSH_JUNKIE_LOOPS <C>
757 # Allow loop bodies to take the form `list; end' instead of
758 # `do list; done'.
759 #setopt csh_junkie_loops
760
761 # CSH_JUNKIE_QUOTES <C>
762 # Changes the rules for single- and double-quoted text to match that of
763 # csh.  These require that embedded newlines be preceded by a backslash;
764 # unescaped newlines will cause an error message.
765 # In double-quoted strings, it is made impossible to escape `$', ``'
766 # or `"' (and `\' itself no longer needs escaping).
767 # Command substitutions are only expanded once, and cannot be nested.
768 #setopt csh_junkie_quotes
769
770 # CSH_NULLCMD <C>
771 # Do not use the values of NULLCMD and READNULLCMD
772 # when running redirections with no command. This make 
773 # such redirections fail (see section Redirection).
774 #setopt csh_nullcmd
775
776 # CSH_NULL_GLOB <C>
777 # If a pattern for filename generation has no matches,
778 # delete the pattern from the argument list;
779 # do not report an error unless all the patterns
780 # in a command have no matches.
781 # Overrides NOMATCH.
782 #setopt csh_null_glob
783
784 # DVORAK
785 # Use the Dvorak keyboard instead of the standard qwerty keyboard as a basis
786 # for examining spelling mistakes for the CORRECT and CORRECT_ALL
787 # options and the spell-word editor command.
788 #setopt dvorak
789
790 # EQUALS <Z>
791 # Perform = filename expansion.
792 # (See section Filename Expansion.)
793 #setopt NO_equals
794
795 # ERR_EXIT (-e, ksh: -e)
796 # If a command has a non-zero exit status, execute the ZERR
797 # trap, if set, and exit.  This is disabled while running initialization
798 # scripts.
799 #setopt err_exit
800
801 # EXTENDED_GLOB
802 # Treat the `#', `~' and `^' characters as part of patterns
803 # for filename generation, etc.  (An initial unquoted `~'
804 # always produces named directory expansion.)
805 setopt extended_glob
806
807 # EXTENDED_HISTORY <C>
808 # Save each command's beginning timestamp (in seconds since the epoch)
809 # and the duration (in seconds) to the history file.  The format of
810 # this prefixed data is:
811 # `:<beginning time>:<elapsed seconds>:<command>'.
812 #setopt extended_history
813
814 # FLOW_CONTROL <D>
815 # If this option is unset,
816 # output flow control via start/stop characters (usually assigned to
817 # ^S/^Q) is disabled in the shell's editor.
818 #setopt NO_flow_control
819
820 # FUNCTION_ARGZERO <C> <Z>
821 # When executing a shell function or sourcing a script, set $0
822 # temporarily to the name of the function/script.
823 #setopt NO_function_argzero
824
825 # GLOB (+F, ksh: +f) <D>
826 # Perform filename generation (globbing).
827 # (See section Filename Generation.)
828 #setopt NO_glob
829
830 # GLOBAL_EXPORT (<Z>)
831 # If this option is set, passing the -x flag to the builtins declare,
832 # float, integer, readonly and typeset (but not local)
833 # will also set the -g flag;  hence parameters exported to
834 # the environment will not be made local to the enclosing function, unless
835 # they were already or the flag +g is given explicitly.  If the option is
836 # unset, exported parameters will be made local in just the same way as any
837 # other parameter.
838 # This option is set by default for backward compatibility; it is not
839 # recommended that its behaviour be relied upon.  Note that the builtin
840 # export always sets both the -x and -g flags, and hence its
841 # effect extends beyond the scope of the enclosing function; this is the
842 # most portable way to achieve this behaviour.
843 #setopt NO_global_export
844
845
846 # GLOBAL_RCS (-d) <D>
847 # If this option is unset, the startup files /etc/zprofile,
848 # /etc/zshrc, /etc/zlogin and /etc/zlogout will not be run. It
849 # can be disabled and re-enabled at any time, including inside local startup
850 # files (.zshrc, etc.).
851 #setopt NO_global_rcs
852
853 # GLOB_ASSIGN <C>
854 # If this option is set, filename generation (globbing) is
855 # performed on the right hand side of scalar parameter assignments of
856 # the form `name=pattern (e.g. `foo=*').
857 # If the result has more than one word the parameter will become an array
858 # with those words as arguments. This option is provided for backwards
859 # compatibility only: globbing is always performed on the right hand side
860 # of array assignments of the form `name=(value)'
861 # (e.g. `foo=(*)') and this form is recommended for clarity;
862 # with this option set, it is not possible to predict whether the result
863 # will be an array or a scalar.
864 #setopt glob_assign
865
866 # GLOB_COMPLETE
867 # When the current word has a glob pattern, do not insert all the words
868 # resulting from the expansion but generate matches as for completion and
869 # cycle through them like MENU_COMPLETE. The matches are generated as if
870 # a `*' was added to the end of the word, or inserted at the cursor when 
871 # COMPLETE_IN_WORD is set.  This actually uses pattern matching, not
872 # globbing, so it works not only for files but for any completion, such as
873 # options, user names, etc.
874 setopt glob_complete
875
876 # GLOB_DOTS (-4)
877 # Do not require a leading `.' in a filename to be matched explicitly.
878 #setopt glob_dots
879
880 # GLOB_SUBST <C> <K> <S>
881 # Treat any characters resulting from parameter expansion as being
882 # eligible for file expansion and filename generation, and any
883 # characters resulting from command substitution as being eligible 
884 # for filename generation.  Braces (and commas in between) do not 
885 # become eligible for expansion.
886 #setopt glob_subst
887
888 # HASH_CMDS <D>
889 # Note the location of each command the first time it is executed.
890 # Subsequent invocations of the same command will use the
891 # saved location, avoiding a path search.
892 # If this option is unset, no path hashing is done at all.
893 # However, when CORRECT is set, commands whose names do not appear in
894 # the functions or aliases hash tables are hashed in order to avoid
895 # reporting them as spelling errors.
896 #setopt NO_hash_cmds
897
898 # HASH_DIRS <D>
899 # Whenever a command name is hashed, hash the directory containing it,
900 # as well as all directories that occur earlier in the path.
901 # Has no effect if neither HASH_CMDS nor CORRECT is set.
902 #setopt NO_hash_dirs
903
904 # HASH_LIST_ALL <D>
905 # Whenever a command completion is attempted, make sure the entire
906 # command path is hashed first. This makes the first completion slower.
907 #setopt NO_hash_list_all
908
909 # HIST_ALLOW_CLOBBER
910 # Add `|' to output redirections in the history.  This allows history
911 # references to clobber files even when CLOBBER is unset.
912 setopt NO_hist_allow_clobber
913
914 # HIST_BEEP <D>
915 # Beep when an attempt is made to access a history entry which
916 # isn't there.
917 setopt NO_hist_beep
918
919 # HIST_EXPIRE_DUPS_FIRST
920 # If the internal history needs to be trimmed to add the current command line,
921 # setting this option will cause the oldest history event that has a duplicate
922 # to be lost before losing a unique event from the list.
923 # You should be sure to set the value of HISTSIZE to a larger number
924 # than SAVEHIST in order to give you some room for the duplicated
925 # events, otherwise this option will behave just like HIST_IGNORE_ALL_DUPS
926 # once the history fills up with unique events.
927 setopt hist_expire_dups_first
928
929 # HIST_FIND_NO_DUPS
930 # When searching for history entries in the line editor, do not display
931 # duplicates of a line previously found, even if the duplicates are not
932 # contiguous.
933 setopt hist_find_no_dups
934
935 # HIST_IGNORE_ALL_DUPS
936 # If a new command line being added to the history list duplicates an
937 # older one, the older command is removed from the list (even if it is
938 # not the previous event).
939 setopt hist_ignore_all_dups
940
941 # HIST_IGNORE_DUPS (-h)
942 # Do not enter command lines into the history list
943 # if they are duplicates of the previous event.
944 setopt hist_ignore_dups
945
946 # HIST_IGNORE_SPACE (-g)
947 # Remove command lines from the history list when the first character on
948 # the line is a space, or when one of the expanded aliases contains a
949 # leading space.
950 # Note that the command lingers in the internal history until the next
951 # command is entered before it vanishes, allowing you to briefly reuse
952 # or edit the line.  If you want to make it vanish right away without
953 # entering another command, type a space and press return.
954 setopt hist_ignore_space
955
956 # HIST_NO_FUNCTIONS
957 # Remove function definitions from the history list.
958 # Note that the function lingers in the internal history until the next
959 # command is entered before it vanishes, allowing you to briefly reuse
960 # or edit the definition.
961 setopt hist_no_functions
962
963 # HIST_NO_STORE
964 # Remove the history (fc -l) command from the history list
965 # when invoked.
966 # Note that the command lingers in the internal history until the next
967 # command is entered before it vanishes, allowing you to briefly reuse
968 # or edit the line.
969 setopt hist_no_store
970
971 # HIST_REDUCE_BLANKS
972 # Remove superfluous blanks from each command line
973 # being added to the history list.
974 setopt hist_reduce_blanks
975
976 # HIST_SAVE_NO_DUPS
977 # When writing out the history file, older commands that duplicate
978 # newer ones are omitted.
979 setopt hist_save_no_dups
980
981 # HIST_VERIFY
982 # Whenever the user enters a line with history expansion,
983 # don't execute the line directly; instead, perform
984 # history expansion and reload the line into the editing buffer.
985 setopt hist_verify
986
987 # HUP <Z>
988 # Send the HUP signal to running jobs when the
989 # shell exits.
990 setopt NO_hup
991
992 # IGNORE_BRACES (-I) <S>
993 # Do not perform brace expansion.
994 #setopt ignore_braces
995
996 # IGNORE_EOF (-7)
997 # Do not exit on end-of-file.  Require the use
998 # of exit or logout instead.
999 # However, ten consecutive EOFs will cause the shell to exit anyway,
1000 # to avoid the shell hanging if its tty goes away.
1001 # Also, if this option is set and the Zsh Line Editor is used, widgets
1002 # implemented by shell functions can be bound to EOF (normally
1003 # Control-D) without printing the normal warning message.  This works
1004 # only for normal widgets, not for completion widgets.
1005 #setopt ignore_eof
1006
1007 # INC_APPEND_HISTORY
1008 # This options works like APPEND_HISTORY except that new history lines
1009 # are added to the $HISTFILE incrementally (as soon as they are
1010 # entered), rather than waiting until the shell is killed.
1011 # The file is periodically trimmed to the number of lines specified by
1012 # $SAVEHIST, but can exceed this value between trimmings.
1013 setopt inc_append_history
1014
1015 # INTERACTIVE (-i, ksh: -i)
1016 # This is an interactive shell.  This option is set upon initialisation if
1017 # the standard input is a tty and commands are being read from standard input.
1018 # (See the discussion of SHIN_STDIN.)
1019 # This heuristic may be overridden by specifying a state for this option
1020 # on the command line.
1021 # The value of this option cannot be changed anywhere other than the command line.
1022 #setopt NO_interactive
1023
1024 # INTERACTIVE_COMMENTS (-k) <K> <S>
1025 # Allow comments even in interactive shells.
1026 setopt interactive_comments
1027
1028 # KSH_ARRAYS <K> <S>
1029 # Emulate ksh array handling as closely as possible.  If this option
1030 # is set, array elements are numbered from zero, an array parameter
1031 # without subscript refers to the first element instead of the whole array,
1032 # and braces are required to delimit a subscript (`${path[2]}' rather
1033 # than just `$path[2]').
1034 #setopt ksh_arrays
1035
1036 # KSH_AUTOLOAD <K> <S>
1037 # Emulate ksh function autoloading.  This means that when a function is
1038 # autoloaded, the corresponding file is merely executed, and must define
1039 # the function itself.  (By default, the function is defined to the contents
1040 # of the file.  However, the most common ksh-style case - of the file
1041 # containing only a simple definition of the function - is always handled
1042 # in the ksh-compatible manner.)
1043 #setopt ksh_autoload
1044
1045 # KSH_GLOB <K>
1046 # In pattern matching, the interpretation of parentheses is affected by
1047 # a preceding `@', `*', `+', `?' or `!'. See section Filename Generation.
1048 #setopt ksh_glob
1049
1050 # KSH_OPTION_PRINT <K>
1051 # Alters the way options settings are printed: instead of separate lists of
1052 # set and unset options, all options are shown, marked `on' if
1053 # they are in the non-default state, `off' otherwise.
1054 #setopt ksh_option_print
1055
1056 # KSH_TYPESET <K>
1057 # Alters the way arguments to the typeset family of commands, including
1058 # declare, export, float, integer, local and
1059 # readonly, are processed.  Without this option, zsh will perform normal
1060 # word splitting after command and parameter expansion in arguments of an
1061 # assignment; with it, word splitting does not take place in those cases.
1062 #setopt ksh_typeset
1063
1064 # LIST_AMBIGUOUS <D>
1065 # This option works when AUTO_LIST or BASH_AUTO_LIST is also
1066 # set.  If there is an unambiguous prefix to insert on the command line,
1067 # that is done without a completion list being displayed; in other
1068 # words, auto-listing behaviour only takes place when nothing would be
1069 # inserted.  In the case of BASH_AUTO_LIST, this means that the list
1070 # will be delayed to the third call of the function.
1071 #setopt NO_list_ambiguous
1072
1073 # LIST_BEEP <D>
1074 # Beep on an ambiguous completion.  More accurately, this forces the
1075 # completion widgets to return status 1 on an ambiguous completion, which
1076 # causes the shell to beep if the option BEEP is also set; this may
1077 # be modified if completion is called from a user-defined widget.
1078 setopt NO_list_beep
1079
1080 # LIST_PACKED
1081 # Try to make the completion list smaller (occupying less lines) by
1082 # printing the matches in columns with different widths.
1083 setopt list_packed
1084
1085 # LIST_ROWS_FIRST
1086 # Lay out the matches in completion lists sorted horizontally, that is,
1087 # the second match is to the right of the first one, not under it as
1088 # usual.
1089 setopt NO_list_rows_first
1090
1091 # LIST_TYPES (-X)
1092 # When listing files that are possible completions, show the
1093 # type of each file with a trailing identifying mark.
1094 setopt list_types
1095
1096 # LOCAL_OPTIONS <K>
1097 # If this option is set at the point of return from a shell function,
1098 # all the options (including this one) which were in force upon entry to
1099 # the function are restored.  Otherwise, only this option and the XTRACE
1100 # and PRINT_EXIT_VALUE options are restored.  Hence
1101 # if this is explicitly unset by a shell function the other options in
1102 # force at the point of return will remain so.
1103 # A shell function can also guarantee itself a known shell configuration
1104 # with a formulation like `emulate -L zsh'; the -L activates LOCAL_OPTIONS.
1105 #setopt local_options
1106
1107 # LOCAL_TRAPS <K>
1108 # If this option is set when a signal trap is set inside a function, then the
1109 # previous status of the trap for that signal will be restored when the
1110 # function exits.  Note that this option must be set prior to altering the
1111 # trap behaviour in a function; unlike LOCAL_OPTIONS, the value on exit
1112 # from the function is irrelevant.  However, it does not need to be set
1113 # before any global trap for that to be correctly restored by a function.
1114 # For example,
1115 # unsetopt localtraps
1116 # trap - INT
1117 # fn() { setopt localtraps; trap '{}' INT; sleep 3; }
1118 # will restore normally handling of SIGINT after the function exits.
1119 #setopt local_traps
1120
1121 # LONG_LIST_JOBS (-R)
1122 # List jobs in the long format by default.
1123 setopt long_list_jobs
1124
1125 # MAGIC_EQUAL_SUBST
1126 # All unquoted arguments of the form `anything=expression'
1127 # appearing after the command name have filename expansion (that is,
1128 # where expression has a leading `~' or `=') performed on
1129 # expression as if it were a parameter assignment.  The argument is
1130 # not otherwise treated specially; it is passed to the command as a single
1131 # argument, and not used as an actual parameter assignment.  
1132 # For example, in echo foo=~/bar:~/rod, both occurrences of ~ would be replaced.
1133 # Note that this happens anyway with typeset and similar statements.
1134 # This option respects the setting of the KSH_TYPESET option.
1135 # In other words, if both options are in effect, arguments looking like
1136 # assignments will not undergo wordsplitting.
1137 setopt magic_equal_subst
1138
1139
1140 # MAIL_WARNING (-U)
1141 # Print a warning message if a mail file has been
1142 # accessed since the shell last checked.
1143 setopt mail_warning
1144
1145 # MARK_DIRS (-8, ksh: -X)
1146 # Append a trailing `/' to all directory
1147 # names resulting from filename generation (globbing).
1148 #setopt mark_dirs
1149
1150 # MENU_COMPLETE (-Y)
1151 # On an ambiguous completion, instead of listing possibilities or beeping,
1152 # insert the first match immediately.  Then when completion is requested
1153 # again, remove the first match and insert the second match, etc.
1154 # When there are no more matches, go back to the first one again.
1155 # reverse-menu-complete may be used to loop through the list
1156 # in the other direction. This option overrides AUTO_MENU.
1157 #setopt menu_complete
1158
1159 # MONITOR (-m, ksh: -m)
1160 # Allow job control.  Set by default in interactive shells.
1161 #setopt NO_monitor
1162
1163 # MULTIOS <Z>
1164 # Perform implicit tees or cats when multiple
1165 # redirections are attempted (see section Redirection).
1166 #setopt NO_multios
1167
1168 # NOMATCH (+3) <C> <Z>
1169 # If a pattern for filename generation has no matches,
1170 # print an error, instead of
1171 # leaving it unchanged in the argument list.
1172 # This also applies to file expansion
1173 # of an initial `~' or `='.
1174 #setopt NO_nomatch
1175
1176 # NOTIFY (-5, ksh: -b) <Z>
1177 # Report the status of background jobs immediately, rather than
1178 # waiting until just before printing a prompt.
1179 #setopt NO_notify
1180
1181 # NULL_GLOB (-G)
1182 # If a pattern for filename generation has no matches,
1183 # delete the pattern from the argument list instead of reporting an error.
1184 # Overrides NOMATCH.
1185 setopt null_glob
1186
1187 # NUMERIC_GLOB_SORT
1188 # If numeric filenames are matched by a filename generation pattern,
1189 # sort the filenames numerically rather than lexicographically.
1190 setopt NO_numeric_glob_sort
1191
1192 # OCTAL_ZEROES <S>
1193 # Interpret any integer constant beginning with a 0 as octal, per IEEE Std
1194 # 1003.2-1992 (ISO 9945-2:1993).  This is not enabled by default as it
1195 # causes problems with parsing of, for example, date and time strings with
1196 # leading zeroes.
1197 #setopt octal_zeroes
1198
1199 # OVERSTRIKE
1200 # Start up the line editor in overstrike mode.
1201 #setopt overstrike
1202
1203 # PATH_DIRS (-Q)
1204 # Perform a path search even on command names with slashes in them.
1205 # Thus if `/usr/local/bin' is in the user's path, and he or she types
1206 # `X11/xinit', the command `/usr/local/bin/X11/xinit' will be executed
1207 # (assuming it exists).
1208 # Commands explicitly beginning with `/', `./' or `../'
1209 # are not subject to the path search.
1210 # This also applies to the . builtin.
1211 # Note that subdirectories of the current directory are always searched for
1212 # executables specified in this form.  This takes place before any search
1213 # indicated by this option, and regardless of whether `.' or the current
1214 # directory appear in the command search path.
1215 setopt NO_path_dirs
1216
1217
1218 # POSIX_BUILTINS <K> <S>
1219 # When this option is set the command builtin can be used to execute
1220 # shell builtin commands.  Parameter assignments specified before shell
1221 # functions and special builtins are kept after the command completes unless
1222 # the special builtin is prefixed with the command builtin.  Special
1223 # builtins are
1224 # .,:,break,continue,declare,eval,exit,
1225 # export,integer,local,readonly,return,set,shift,source,times,trap and unset.
1226 #setopt posix_builtins
1227
1228 # PRINT_EIGHT_BIT
1229 # Print eight bit characters literally in completion lists, etc.
1230 # This option is not necessary if your system correctly returns the
1231 # printability of eight bit characters (see man page ctype(3)).
1232 setopt print_eight_bit
1233
1234 # PRINT_EXIT_VALUE (-1)
1235 # Print the exit value of programs with non-zero exit status.
1236 #setopt print_exit_value
1237
1238 # PRIVILEGED (-p, ksh: -p)
1239 # Turn on privileged mode. This is enabled automatically on startup if the
1240 # effective user (group) ID is not equal to the real user (group) ID.  Turning
1241 # this option off causes the effective user and group IDs to be set to the
1242 # real user and group IDs. This option disables sourcing user startup files.
1243 # If zsh is invoked as `sh' or `ksh' with this option set,
1244 # /etc/suid_profile is sourced (after /etc/profile on interactive
1245 # shells). Sourcing ~/.profile is disabled and the contents of the
1246 # ENV variable is ignored. This option cannot be changed using the
1247 # -m option of setopt and unsetopt, and changing it inside a
1248 #  function always changes it globally regardless of the LOCAL_OPTIONS
1249 # option.
1250 #setopt privileged
1251
1252 # PROMPT_BANG <K>
1253 # If set, `!' is treated specially in prompt expansion.
1254 # See section Prompt Expansion.
1255 #setopt prompt_bang
1256
1257 # PROMPT_CR (+V) <D>
1258 # Print a carriage return just before printing
1259 # a prompt in the line editor.  This is on by default as multi-line editing
1260 # is only possible if the editor knows where the start of the line appears.
1261 #setopt NO_prompt_cr
1262
1263 # PROMPT_PERCENT <C> <Z>
1264 # If set, `%' is treated specially in prompt expansion.
1265 # See section Prompt Expansion.
1266 #setopt NO_prompt_percent
1267
1268 # PROMPT_SUBST <K>
1269 # If set, parameter expansion, command substitution and
1270 # arithmetic expansion are performed in prompts.
1271 #setopt prompt_subst
1272
1273 # PUSHD_IGNORE_DUPS
1274 # Don't push multiple copies of the same directory onto the directory stack.
1275 setopt pushd_ignore_dups
1276
1277 # PUSHD_MINUS
1278 # Exchanges the meanings of `+' and `-'
1279 # when used with a number to specify a directory in the stack.
1280 setopt pushd_minus
1281
1282 # PUSHD_SILENT (-E)
1283 # Do not print the directory stack after pushd or popd.
1284 setopt pushd_silent
1285
1286 # PUSHD_TO_HOME (-D)
1287 # Have pushd with no arguments act like `pushd $HOME'.
1288 #setopt NO_pushd_to_home
1289
1290 # RC_EXPAND_PARAM (-P)
1291 # Array expansions of the form
1292 # `foo${xx}bar', where the parameter
1293 # xx is set to (a b c), are substituted with
1294 # `fooabar foobbar foocbar' instead of the default
1295 # `fooa b cbar'.
1296 #setopt rc_expand_param
1297
1298 # RC_QUOTES
1299 # Allow the character sequence `'{'}' to signify a single quote
1300 # within singly quoted strings.  Note this does not apply in quoted strings
1301 # using the format $'...', where a backslashed single quote can
1302 # be used.
1303 setopt rc_quotes
1304
1305 # RCS (+f) <D>
1306 # After /etc/zshenv is sourced on startup, source the
1307 # .zshenv, /etc/zprofile, .zprofile,
1308 # /etc/zshrc, .zshrc, /etc/zlogin, .zlogin, and .zlogout
1309 # files, as described in section Files.
1310 # If this option is unset, the /etc/zshenv file is still sourced, but any
1311 # of the others will not be; it can be set at any time to prevent the
1312 # remaining startup files after the currently executing one from
1313 # being sourced.
1314 #setopt NO_rcs
1315
1316 # REC_EXACT (-S)
1317 # In completion, recognize exact matches even
1318 # if they are ambiguous.
1319 #setopt rec_exact
1320
1321 # RESTRICTED (-r)
1322 # Enables restricted mode.  This option cannot be changed using
1323 # unsetopt, and setting it inside a function always changes it
1324 # globally regardless of the LOCAL_OPTIONS option.  See
1325 # section Restricted Shell.
1326 #setopt restricted
1327
1328 # RM_STAR_SILENT (-H) <K> <S>
1329 # Do not query the user before executing `rm *' or `rm path/*'.
1330 #setopt rm_star_silent
1331
1332 # RM_STAR_WAIT
1333 # If querying the user before executing `rm *' or `rm path/*',
1334 # first wait ten seconds and ignore anything typed in that time.
1335 # This avoids the problem of reflexively answering `yes' to the query
1336 # when one didn't really mean it.  The wait and query can always be
1337 # avoided by expanding the `*' in ZLE (with tab).
1338 #setopt rm_star_wait
1339
1340 # SHARE_HISTORY <K>
1341 # This option both imports new commands from the history file, and also
1342 # causes your typed commands to be appended to the history file (the
1343 # latter is like specifying INC_APPEND_HISTORY).
1344 # The history lines are also output with timestamps ala
1345 # EXTENDED_HISTORY (which makes it easier to find the spot where
1346 # we left off reading the file after it gets re-written).
1347 setopt share_history
1348
1349 # SH_FILE_EXPANSION <K> <S>
1350 # Perform filename expansion (e.g., ~ expansion) before
1351 # parameter expansion, command substitution, arithmetic expansion
1352 # and brace expansion.
1353 # If this option is unset, it is performed after
1354 # brace expansion, so things like `~$USERNAME' and
1355 # `~{pfalstad,rc}' will work.
1356 #setopt sh_file_expansion
1357
1358 # SH_GLOB <K> <S>
1359 # Disables the special meaning of `(', `|', `)'
1360 # and '<' for globbing the result of parameter and command substitutions,
1361 # and in some other places where
1362 # the shell accepts patterns.  This option is set by default if zsh is
1363 # invoked as sh or ksh.
1364 #setopt sh_glob
1365
1366 # SHIN_STDIN (-s, ksh: -s)
1367 # Commands are being read from the standard input.
1368 # Commands are read from standard input if no command is specified with
1369 # -c and no file of commands is specified.  If SHIN_STDIN
1370 # is set explicitly on the command line,
1371 # any argument that would otherwise have been
1372 # taken as a file to run will instead be treated as a normal positional
1373 # parameter.
1374 # Note that setting or unsetting this option on the command line does not
1375 # necessarily affect the state the option will have while the shell is
1376 # running - that is purely an indicator of whether on not commands are
1377 # actually being read from standard input. The value of this option
1378 # cannot be changed anywhere other 
1379 # than the command line.
1380 #setopt shin_stdin
1381
1382 # SH_NULLCMD <K> <S>
1383 # Do not use the values of NULLCMD and READNULLCMD
1384 # when doing redirections, use `:' instead (see section Redirection).
1385 #setopt sh_nullcmd
1386
1387 # SH_OPTION_LETTERS <K> <S>
1388 # If this option is set the shell tries to interpret single letter options
1389 # (which are used with set and setopt) like ksh does.
1390 # This also affects the value of the - special parameter.
1391 #setopt sh_option_letters
1392
1393 # SHORT_LOOPS <C> <Z>
1394 # Allow the short forms of for, select,
1395 # if, and function constructs.
1396 #setopt NO_short_loops
1397
1398 # SH_WORD_SPLIT (-y) <K> <S>
1399 # Causes field splitting to be performed on unquoted parameter expansions.
1400 # Note that this option has nothing to do with word splitting.
1401 # (See section Parameter Expansion.)
1402 #setopt sh_word_split
1403
1404 # SINGLE_COMMAND (-t, ksh: -t)
1405 # If the shell is reading from standard input, it exits after a single command
1406 # has been executed.  This also makes the shell non-interactive, unless the
1407 # INTERACTIVE option is explicitly set on the command line.
1408 # The value of this option cannot be changed anywhere other than the command line.
1409 #setopt single_command
1410
1411 # SINGLE_LINE_ZLE (-M) <K>
1412 # Use single-line command line editing instead of multi-line.
1413 #setopt single_line_zle
1414
1415 # SUN_KEYBOARD_HACK (-L)
1416 # If a line ends with a backquote, and there are an odd number
1417 # of backquotes on the line, ignore the trailing backquote.
1418 # This is useful on some keyboards where the return key is
1419 # too small, and the backquote key lies annoyingly close to it.
1420 #setopt sun_keyboard_hack
1421
1422 # UNSET (+u, ksh: +u) <K> <S> <Z>
1423 # Treat unset parameters as if they were empty when substituting.
1424 # Otherwise they are treated as an error.
1425 #setopt NO_unset
1426
1427 # VERBOSE (-v, ksh: -v)
1428 # Print shell input lines as they are read.
1429 #setopt verbose
1430
1431 # XTRACE (-x, ksh: -x)
1432 # Print commands and their arguments as they are executed.
1433 #setopt xtrace
1434
1435 # ZLE (-Z)
1436 # Use the zsh line editor.  Set by default in interactive shells connected to
1437 # a terminal.
1438 #setopt NO_zle
1439