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
6 ## With sugestions from:
7 ## Bart Schaefer <schaefer@brasslantern.com>
8 ## Mario Jose Medjeral <mario@medjeral.demon.co.uk>
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.
14 ## Use and modify to personal taste. Copying this file without
15 ## thought will needlessly increase zsh's memory usage and startup time.
17 ## others can't rwx my files
18 ## this is very paranoid :-) set to 022 if you wish
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
35 *xterm*|rxvt|(dt|k|E)term)
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
49 ## use hard limits, except for a smaller stack and no core dumps
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.
61 ## for root add sbin dirs to path
62 if (( EUID == 0 )); then
63 path=($path /sbin /usr/sbin /usr/local/sbin)
66 ## aditional dir to look for function definitions
67 fpath=($fpath ~/.zfunc) ## EDIT ## or comment if u don't need it.
70 manpath=(/usr/local/man /usr/share/man) ## EDIT ##
71 manpath=($manpath /usr/X11R6/man /usr/man /usr/lib/perl5/man) ## EDIT ##
73 ## remove duplicate entries from path,cdpath,manpath & fpath
74 typeset -U path cdpath manpath fpath
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
80 ## The maximum number of events stored in the internal history list.
83 ## The maximum number of history events to save in the history file.
86 ## maximum size of the directory stack.
89 ## file for mail checking
90 MAIL=/var/mail/$USERNAME
92 ## The interval in seconds between checks for new mail.
95 ## The interval in seconds between checks for login/logout activity
96 ## using the watch parameter.
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
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.
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'
120 ## The directory to search for shell startup files (.zshrc, etc),
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
141 ## compiler opt. flags !!! use this with caution !!! or dont use et all
144 (( ${+CFLAGS} )) || export CFLAGS='-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions'
147 (( ${+CFLAGS} )) || export CFLAGS='-O3 -march=pentium -mcpu=pentium -ffast-math -funroll-loops -fomit-frame-pointer -fforce-mem -fforce-addr -malign-double -fno-exceptions'
150 (( ${+CFLAGS} )) || export CFLAGS='-O3 -funroll-all-loops -malign-double -mcpu=i486 -march=i486 -fomit-frame-pointer -fno-exceptions'
153 (( ${+CXXFLAGS} )) || export CXXFLAGS=$CFLAGS
156 ## variables for BitchX (irc client)
157 (( ${+IRCNAME} )) || export IRCNAME='' ## EDIT ##
158 (( ${+IRCNICK} )) || export IRCNICK='' ## EDIT ##
159 (( ${+IRCSERVER} )) || export IRCSERVER='' ## EDIT ##
161 ## auto logout after timeout in seconds
164 ## if we are in X then disable TMOUT
166 *xterm*|rxvt|(dt|k|E)term)
171 #bindkey -v ## vi key bindings
172 bindkey -e ## emacs key bindings
174 ## turn on full featured completion (minimal needs: zsh3.1)
175 if [[ "$ZSH_VERSION" == (3.1|4)* ]]; then
179 print "Advanced completion system not found; ignoring zstyle settings."
183 ## set colors for GNU ls ; set this to right file
184 eval `dircolors /etc/DIR_COLORS` ## EDIT ##
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
191 ## Someone once accused zsh of not being as complete as Emacs, because it
192 ## lacks Tetris and an adventure game.
195 bindkey "^Xt" tetris ## C-x-t to play
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
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
213 bindkey "^Xf" insert-files ## C-x-f
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
226 bindkey "^X^Z" predict-on ## C-x C-z
227 bindkey "^Z" predict-off ## C-z
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.
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
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.'
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
272 ## or use neat prompt themes included with zsh
273 autoload -U promptinit
275 ## Currently available prompt themes:
276 ## adam1 adam2 bart bigfade clint elite2 elite
277 ## fade fire off oliver redhat suse walters zefram
280 ## don't ask me 'do you wish to see all XX possibilities' before menu selection
283 ## SPROMPT - the spelling prompt
284 SPROMPT='zsh: correct '%R' to '%r' ? ([Y]es/[N]o/[E]dit/[A]bort) '
286 ## functions for displaying neat stuff in *term title
288 *xterm*|rxvt|(dt|k|E)term)
289 ## display user@host and full dir in *term title
291 print -Pn "\033]0;%n@%m %~\007"
292 #print -Pn "\033]0;%n@%m%# %~ %l %w :: %T\a" ## or use this
294 ## display user@host and name of current process in *term title
296 print -Pn "\033]0;%n@%m <$1> %~\007"
297 #print -Pn "\033]0;%n@%m%# <$1> %~ %l %w :: %T\a" ## or use this
303 alias p='ps -fu $USER'
306 alias z='vim ~/.zshrc;src'
307 alias gvim='gvim -U ~/.gvimrc'
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'
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
327 alias cd..='cd ../..'
328 alias cd....='cd ../../..'
329 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
345 alias -g US='|sort -u'
346 alias -g NS='|sort -n'
347 alias -g RNS='|sort -nr'
348 alias -g N='&>/dev/null&'
350 ## changing terminal type
351 alias v1='export TERM=vt100'
352 alias v2='export TERM=vt220'
353 alias vx='export TERM=xterm-color'
357 setenv () { typeset -x "${1}${1:+=}${(@)argv[2,$#]}" }
359 ## find process to kill and kill it.
363 pid=$(ps -ax | grep $1 | grep -v grep | awk '{ print $1 }')
364 echo -n "killing $1 (process $pid)..."
369 ## invoke this every time when u change .zshrc to
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
381 ## make screenshot of current desktop (use import from ImageMagic)
383 { sleep 5; import -window root desktop.jpg }
385 ## find all suid files
387 { ls -l /**/*(su0x) }
389 ## restore all .bak files
393 zmv '(**/)(*).bak' '$1$2'
396 ## display processes tree in less
398 { pstree -p $* | less -S }
400 ## search for various types or README file in dir and display them in $PAGER
404 files=(./(#i)*(read*me|lue*m(in|)ut)*(ND))
408 print 'No README files.'
413 ## General completion technique
414 ## complete as much u can ..
415 zstyle ':completion:*' completer _complete _list _oldlist _expand _ignored _match _correct _approximate _prefix
417 #zstyle ':completion:*' completer _expand _complete _list _ignored _approximate
419 #zstyle ':completion:*' completer _complete _ignored
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 )'
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 ''
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
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
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:|=*'
460 ## offer indexes before parameters in subscripts
461 zstyle ':completion:*:*:-subscript-:*' tag-order indexes parameters
463 ## insert all expansions for expand completer
464 zstyle ':completion:*:expand:*' tag-order all-expansions
466 ## ignore completion functions (until the _ignored completer)
467 zstyle ':completion:*:functions' ignored-patterns '_*'
469 ## completion caching
470 zstyle ':completion::complete:*' use-cache 1
471 zstyle ':completion::complete:*' cache-path ~/.zcompcache/$HOST
473 ## add colors to completions
474 zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
476 ## don't complete backup files as executables
477 zstyle ':completion:*:complete:-command-::commands' ignored-patterns '*\~'
479 ## filename suffixes to ignore during completion (except after rm command)
480 zstyle ':completion:*:*:(^rm):*:*files' ignored-patterns \
481 '*?.(o|c~|old|pro|zwc)' '*~'
483 ## completions for some progs. not in default completion system
485 zstyle ':completion:*:*:mpg123:*' file-patterns \
486 '*.(mp3|MP3):mp3\ files *(-/):directories'
488 zstyle ':completion:*:*:ogg123:*' file-patterns \
489 '*.(ogg|OGG):ogg\ files *(-/):directories'
491 ## generic completions for programs which understand GNU long options(--help)
493 compdef _gnu_generic slrnpull make df du
495 ## on processes completion complete all user processes
496 zstyle ':completion:*:processes' command 'ps -au$USER'
498 ## add colors to processes for kill completion
499 zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
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
508 #hosts=( $(</etc/hosts) )
509 #zstyle ':completion:*' hosts $hosts
514 # {joe,root}@mymachine.com
515 # jbloggs@myothermachine.com
518 ## other people's accounts:
520 # {fred,root}@hismachine.com
521 # vera@hermachine.com
523 #zstyle ':completion:*:my-accounts' users-hosts $my_accounts
524 #zstyle ':completion:*:other-accounts' users-hosts $other_accounts
526 ## (host, port, user) triples for telnet
527 #telnet_users_hosts_ports=(
530 # @mail-server:{smtp,pop3}
534 #zstyle ':completion:*:*:telnet:*' users-hosts-ports $telnet_users_hosts_ports
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
548 # ALIASES <D> Expand aliases.
551 # ALL_EXPORT (-a, ksh: -a)
552 # All parameters subsequently defined are automatically exported.
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
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.
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
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.
582 # Automatically list choices on an ambiguous completion.
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.
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
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
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
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
616 # Make cd push the old directory onto the directory stack.
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
626 # Treat single word simple commands without redirection
627 # as candidates for resumption of an existing job.
628 setopt NO_auto_resume
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
635 # BANG_HIST (+K) <C> <Z>
636 # Perform textual history expansion, csh-style,
637 # treating the character `!' specially.
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
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
657 # Beep on error in ZLE.
660 # BG_NICE (-6) <C> <Z>
661 # Run all background jobs at a lower priority. This option
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.
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.
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.
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).
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.
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
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
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.
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
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
742 # Try to correct the spelling of commands.
746 # Try to correct the spelling of all arguments in a line.
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
754 #setopt csh_junkie_history
756 # CSH_JUNKIE_LOOPS <C>
757 # Allow loop bodies to take the form `list; end' instead of
759 #setopt csh_junkie_loops
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
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).
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.
782 #setopt csh_null_glob
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.
791 # Perform = filename expansion.
792 # (See section Filename Expansion.)
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
802 # Treat the `#', `~' and `^' characters as part of patterns
803 # for filename generation, etc. (An initial unquoted `~'
804 # always produces named directory expansion.)
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
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
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
825 # GLOB (+F, ksh: +f) <D>
826 # Perform filename generation (globbing).
827 # (See section Filename Generation.)
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
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
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
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.
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.
877 # Do not require a leading `.' in a filename to be matched explicitly.
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.
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.
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.
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
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
915 # Beep when an attempt is made to access a history entry which
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
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
933 setopt hist_find_no_dups
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
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
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
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
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
964 # Remove the history (fc -l) command from the history list
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
972 # Remove superfluous blanks from each command line
973 # being added to the history list.
974 setopt hist_reduce_blanks
977 # When writing out the history file, older commands that duplicate
978 # newer ones are omitted.
979 setopt hist_save_no_dups
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.
988 # Send the HUP signal to running jobs when the
992 # IGNORE_BRACES (-I) <S>
993 # Do not perform brace expansion.
994 #setopt ignore_braces
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.
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
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
1024 # INTERACTIVE_COMMENTS (-k) <K> <S>
1025 # Allow comments even in interactive shells.
1026 setopt interactive_comments
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]').
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
1046 # In pattern matching, the interpretation of parentheses is affected by
1047 # a preceding `@', `*', `+', `?' or `!'. See section Filename Generation.
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
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.
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
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.
1081 # Try to make the completion list smaller (occupying less lines) by
1082 # printing the matches in columns with different widths.
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
1089 setopt NO_list_rows_first
1092 # When listing files that are possible completions, show the
1093 # type of each file with a trailing identifying mark.
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
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.
1115 # unsetopt localtraps
1117 # fn() { setopt localtraps; trap '{}' INT; sleep 3; }
1118 # will restore normally handling of SIGINT after the function exits.
1121 # LONG_LIST_JOBS (-R)
1122 # List jobs in the long format by default.
1123 setopt long_list_jobs
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
1141 # Print a warning message if a mail file has been
1142 # accessed since the shell last checked.
1145 # MARK_DIRS (-8, ksh: -X)
1146 # Append a trailing `/' to all directory
1147 # names resulting from filename generation (globbing).
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
1159 # MONITOR (-m, ksh: -m)
1160 # Allow job control. Set by default in interactive shells.
1164 # Perform implicit tees or cats when multiple
1165 # redirections are attempted (see section Redirection).
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 `='.
1176 # NOTIFY (-5, ksh: -b) <Z>
1177 # Report the status of background jobs immediately, rather than
1178 # waiting until just before printing a prompt.
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.
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
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
1197 #setopt octal_zeroes
1200 # Start up the line editor in overstrike mode.
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.
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
1224 # .,:,break,continue,declare,eval,exit,
1225 # export,integer,local,readonly,return,set,shift,source,times,trap and unset.
1226 #setopt posix_builtins
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
1234 # PRINT_EXIT_VALUE (-1)
1235 # Print the exit value of programs with non-zero exit status.
1236 #setopt print_exit_value
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
1253 # If set, `!' is treated specially in prompt expansion.
1254 # See section Prompt Expansion.
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
1263 # PROMPT_PERCENT <C> <Z>
1264 # If set, `%' is treated specially in prompt expansion.
1265 # See section Prompt Expansion.
1266 #setopt NO_prompt_percent
1269 # If set, parameter expansion, command substitution and
1270 # arithmetic expansion are performed in prompts.
1271 #setopt prompt_subst
1274 # Don't push multiple copies of the same directory onto the directory stack.
1275 setopt pushd_ignore_dups
1278 # Exchanges the meanings of `+' and `-'
1279 # when used with a number to specify a directory in the stack.
1283 # Do not print the directory stack after pushd or popd.
1286 # PUSHD_TO_HOME (-D)
1287 # Have pushd with no arguments act like `pushd $HOME'.
1288 #setopt NO_pushd_to_home
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
1296 #setopt rc_expand_param
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
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
1317 # In completion, recognize exact matches even
1318 # if they are ambiguous.
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.
1328 # RM_STAR_SILENT (-H) <K> <S>
1329 # Do not query the user before executing `rm *' or `rm path/*'.
1330 #setopt rm_star_silent
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
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
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
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.
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
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.
1382 # SH_NULLCMD <K> <S>
1383 # Do not use the values of NULLCMD and READNULLCMD
1384 # when doing redirections, use `:' instead (see section Redirection).
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
1393 # SHORT_LOOPS <C> <Z>
1394 # Allow the short forms of for, select,
1395 # if, and function constructs.
1396 #setopt NO_short_loops
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
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
1411 # SINGLE_LINE_ZLE (-M) <K>
1412 # Use single-line command line editing instead of multi-line.
1413 #setopt single_line_zle
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
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.
1427 # VERBOSE (-v, ksh: -v)
1428 # Print shell input lines as they are read.
1431 # XTRACE (-x, ksh: -x)
1432 # Print commands and their arguments as they are executed.
1436 # Use the zsh line editor. Set by default in interactive shells connected to