zshoptions
ZSHOPTIONS(S)                                       ZSHOPTIONS(S)



NAME
       zshoptions - zsh options

SPECIFYING OPTIONS
       Options  are  primarily  referred to by name.  These names
       are case insensitive and  underscores  are  ignored.   For
       example, `allexport' is equivalent to `A__lleXP_ort'.

       The  sense  of an option name may be inverted by preceding
       it with `no', so `setopt No_Beep' is equivalent to  `unse-
       topt  beep'.   This  inversion  can  only be done once, so
       `nonobeep' is not a synonym for `beep'.  Similarly, `tify'
       is   not  a  synonym  for  `nonotify'  (the  inversion  of
       `notify').

       Some options also have one or more  single  letter  names.
       There  are  two sets of single letter options: one used by
       default, and another used to emulate sh/ksh (used when the
       SH_OPTION_LETTERS  option  is  set).   The  single  letter
       options can be used on the shell command line, or with the
       set,  setopt and unsetopt builtins, as normal Unix options
       preceded by `-'.

       The sense of the single letter options may be inverted  by
       using  `+'  instead  of  `-'.   Some  of the single letter
       option names refer to an option being off, in  which  case
       the  inversion of that name refers to the option being on.
       For example, `+n' is the short name of `exec', and `-n' is
       the short name of its inversion, `noexec'.

       In  strings of single letter options supplied to the shell
       at startup, trailing whitespace will be ignored; for exam-
       ple  the string `-f    ' will be treated just as `-f', but
       the string `-f i' is an error.  This is because many  sys-
       tems  which  implement  the  `#!'  mechanism  for  calling
       scripts do not strip trailing whitespace.


DESCRIPTION OF OPTIONS
       In the following list, options set by default in all  emu-
       lations  are marked <D>; those set by default only in csh,
       ksh, sh, or zsh emulations are marked <C>, <K>,  <S>,  <Z>
       as appropriate.  When listing options (by `setopt', `unse-
       topt', `set -o' or `set +o'), those turned on  by  default
       appear  in  the  list  prefixed  with `no'.  Hence (unless
       KSH_OPTION_PRINT is set), `setopt' shows all options whose
       settings are changed from the default.

       ALIASES <D>
              Expand aliases.

       ALL_EXPORT (-a, ksh: -a)
              All  parameters  subsequently defined are automati-
              cally exported.

       ALWAYS_LAST_PROMPT <D>
              If unset, key functions that list  completions  try
              to  return  to  the  last prompt if given a numeric
              argument. If set these functions try to  return  to
              the last prompt if given no numeric argument.

       ALWAYS_TO_END
              If a completion is performed with the cursor within
              a word, and a full completion is inserted, the cur-
              sor  is moved to the end of the word.  That is, the
              cursor is moved to the end of the word if either  a
              single match is inserted or menu completion is per-
              formed.

       APPEND_HISTORY <D>
              If this is set, zsh sessions will append their his-
              tory  list  to  the history file, rather than over-
              write it. Thus, multiple parallel zsh sessions will
              all  have  their history lists added to the history
              file, in the order they are killed.

       AUTO_CD (-J)
              If a command is issued that can't be executed as  a
              normal  command,  and  the command is the name of a
              directory, perform the cd command  to  that  direc-
              tory.

       AUTO_LIST (-9) <D>
              Automatically  list choices on an ambiguous comple-
              tion.

       AUTO_MENU <D>
              Automatically use menu completion after the  second
              consecutive  request for completion, for example by
              pressing the tab key  repeatedly.  This  option  is
              overridden by MENU_COMPLETE.

       AUTO_NAME_DIRS
              Any parameter that is set to the absolute name of a
              directory  immediately  becomes  a  name  for  that
              directory,  that  will  be  used  by  the  `%~' and
              related prompt sequences,  and  will  be  available
              when  completion  is  performed  on a word starting
              with `~'.  (Otherwise, the parameter must  be  used
              in the form `~param' first.)

       AUTO_PARAM_KEYS <D>
              If  a  parameter name was completed and a following
              character   (normally   a   space)    automatically
              inserted,  and  the  next character typed is one of
              those that have to come  directly  after  the  name
              (like  `}',  `:',  etc.),  the  automatically added
              character is deleted, so that the  character  typed
              comes  immediately  after the parameter name.  Com-
              pletion in a brace expansion is affected similarly:
              the added character is a `,', which will be removed
              if `}' is typed next.

       AUTO_PARAM_SLASH <D>
              If a parameter is completed whose  content  is  the
              name  of  a  directory,  then  add a trailing slash
              instead of a space.

       AUTO_PUSHD (-N)
              Make cd push the old directory onto  the  directory
              stack.

       AUTO_REMOVE_SLASH <D>
              When the last character resulting from a completion
              is a slash and the next character typed is  a  word
              delimiter, a slash, or a character that ends a com-
              mand (such as a semicolon or an ampersand),  remove
              the slash.

       AUTO_RESUME (-W)
              Treat  single word simple commands without redirec-
              tion as candidates for resumption  of  an  existing
              job.

       BAD_PATTERN (+2) <C> <Z>
              If  a  pattern  for  filename  generation  is badly
              formed, print an error message.  (If this option is
              unset, the pattern will be left unchanged.)

       BANG_HIST (+K) <C> <Z>
              Perform   textual   history  expansion,  csh-style,
              treating the character `!' specially.

       BARE_GLOB_QUAL <Z>
              In a glob pattern, treat a trailing set  of  paren-
              theses  as a qualifier list, if it contains no `|',
              `(' or (if special) `~' characters.  See  the  sec-
              tion `Filename Generation'.

       BASH_AUTO_LIST
              On  an  ambiguous  completion,  automatically  list
              choices when  the  completion  function  is  called
              twice  in  succession.   This takes precedence over
              AUTO_LIST.   The  setting  of   LIST_AMBIGUOUS   is
              respected.  If AUTO_MENU is set, the menu behaviour
              will then start with the third  press.   Note  that
              this   will  not  work  with  MENU_COMPLETE,  since
              repeated completion calls immediately cycle through
              the list in that case.

       BEEP (+B) <D>
              Beep on error in ZLE.

       BG_NICE (-6) <C> <Z>
              Run  all background jobs at a lower priority.  This
              option is set by default.

       BRACE_CCL
              Expand expressions in braces which would not other-
              wise undergo brace expansion to a lexically ordered
              list of all the characters.  See the section `Brace
              Expansion'.

       BSD_ECHO <S>
              Make  the  echo  builtin  compatible  with  the BSD
              echo(o) command.  This disables backslashed  escape
              sequences  in  echo strings unless the -e option is
              specified.

       C_BASES
              Output hexadecimal numbers in the standard  C  for-
              mat,  for  example  `0xFF'  instead  of  the  usual
              `16#FF'.  If the option OCTAL_ZEROES  is  also  set
              (it  is  not  by  default),  octal  numbers will be
              treated similarly and hence appear as `077' instead
              of `8#77'.  This option has no effect on the choice
              of the output base, nor  on  the  output  of  bases
              other  than hexadecimal and octal.  Note that these
              formats will be understood on input irrespective of
              the setting of C_BASES.

       CDABLE_VARS (-T)
              If  the  argument to a cd command (or an implied cd
              with the AUTO_CD option set) is  not  a  directory,
              and  does not begin with a slash, try to expand the
              expression as if it were preceded by a `~' (see the
              section `Filename Expansion').

       CHASE_DOTS
              When changing to a directory containing a path seg-
              ment `..' which would otherwise be treated as  can-
              celing  the  previous segment in the path (in other
              words, `foo/..' would be removed from the path,  or
              if  `..'  is  the  first part of the path, the last
              part of $PWD would be deleted), instead resolve the
              path  to  the  physical  directory.  This option is
              overridden by CHASE_LINKS.

              For example, suppose /foo/bar  is  a  link  to  the
              directory  /alt/rod.   Without this option set, `cd
              /foo/bar/..' changes  to  /foo;  with  it  set,  it
              changes  to  /alt.  The same applies if the current
              directory is /foo/bar and `cd ..'  is  used.   Note
              that all other symbolic links in the path will also
              be resolved.

       CHASE_LINKS (-w)
              Resolve symbolic links to their  true  values  when
              changing  directory.   This  also has the effect of
              CHASE_DOTS,  i.e.  a  `..'  path  segment  will  be
              treated  as  referring to the physical parent, even
              if the preceding path segment is a symbolic link.

       CHECK_JOBS <Z>
              Report the status of background and suspended  jobs
              before  exiting  a shell with job control; a second
              attempt   to   exit   the   shell   will   succeed.
              NO_CHECK_JOBS is best used only in combination with
              NO_HUP, else such jobs  will  be  killed  automati-
              cally.

              The  check  is omitted if the commands run from the
              previous command line included  a  `jobs'  command,
              since  it  is  assumed the user is aware that there
              are background or suspended jobs.  A `jobs' command
              run  from  the  precmd  function is not counted for
              this purpose.

       CLOBBER (+C, ksh: +C) <D>
              Allows `>' redirection to truncate existing  files,
              and  `>>'  to create files.  Otherwise `>!' or `>|'
              must be used to truncate a file, and `>>!' or `>>|'
              to create a file.

       COMPLETE_ALIASES
              Prevents  aliases  on  the  command line from being
              internally   substituted   before   completion   is
              attempted.   The effect is to make the alias a dis-
              tinct command for completion purposes.

       COMPLETE_IN_WORD
              If unset, the cursor is set to the end of the  word
              if  completion is started. Otherwise it stays there
              and completion is done from both ends.

       CORRECT (-0)
              Try to correct the spelling of commands.

       CORRECT_ALL (-O)
              Try to correct the spelling of all arguments  in  a
              line.

       CSH_JUNKIE_HISTORY <C>
              A history reference without an event specifier will
              always refer to the previous command.  Without this
              option, such a history reference refers to the same
              event as the previous history reference, defaulting
              to the previous command.

       CSH_JUNKIE_LOOPS <C>
              Allow  loop  bodies  to  take  the form `list; end'
              instead of `do list; done'.

       CSH_JUNKIE_QUOTES <C>
              Changes the rules  for  single-  and  double-quoted
              text  to  match  that  of  csh.  These require that
              embedded  newlines  be  preceded  by  a  backslash;
              unescaped newlines will cause an error message.  In
              double-quoted strings, it  is  made  impossible  to
              escape  `$',  ``'  or `"' (and `\' itself no longer
              needs escaping).  Command  substitutions  are  only
              expanded once, and cannot be nested.

       CSH_NULLCMD <C>
              Do  not  use  the values of NULLCMD and READNULLCMD
              when running redirections with  no  command.   This
              make such redirections fail (see the section `Redi-
              rection').

       CSH_NULL_GLOB <C>
              If  a  pattern  for  filename  generation  has   no
              matches, delete the pattern from the argument list;
              do not report an error unless all the patterns in a
              command have no matches.  Overrides NOMATCH.

       DVORAK Use  the  Dvorak  keyboard  instead of the standard
              qwerty keyboard as a basis for  examining  spelling
              mistakes  for  the  CORRECT and CORRECT_ALL options
              and the spell-word editor command.

       EQUALS <Z>
              Perform = filename  expansion.   (See  the  section
              `Filename Expansion'.)

       ERR_EXIT (-e, ksh: -e)
              If  a  command  has a non-zero exit status, execute
              the ZERR trap, if set, and exit.  This is  disabled
              while running initialization scripts.

       EXEC (+n, ksh: +n) <D>
              Do execute commands.  Without this option, commands
              are read and checked for  syntax  errors,  but  not
              executed.   This  option cannot be turned off in an
              interactive shell, except when `-n' is supplied  to
              the shell at startup.

       EXTENDED_GLOB
              Treat  the  `#',  `~' and `^' characters as part of
              patterns for filename generation, etc.  (An initial
              unquoted `~' always produces named directory expan-
              sion.)

       EXTENDED_HISTORY <C>
              Save each command's beginning timestamp (in seconds
              since  the  epoch) and the duration (in seconds) to
              the history file.  The format of this prefixed data
              is:

              `:<beginning time>:<elapsed seconds>:<command>'.

       FLOW_CONTROL <D>
              If  this  option  is unset, output flow control via
              start/stop characters (usually assigned  to  ^S/^Q)
              is disabled in the shell's editor.

       FUNCTION_ARGZERO <C> <Z>
              When  executing  a  shell  function  or  sourcing a
              script, set $0 temporarily to the name of the func-
              tion/script.

       GLOB (+F, ksh: +f) <D>
              Perform  filename  generation (globbing).  (See the
              section `Filename Generation'.)

       GLOBAL_EXPORT (<Z>)
              If this option is set, passing the -x flag  to  the
              builtins  declare,  float,  integer,  readonly  and
              typeset (but not local) will also set the -g  flag;
              hence  parameters  exported to the environment will
              not be made local to the enclosing function, unless
              they  were  already or the flag +g is given explic-
              itly.  If the option is unset, exported  parameters
              will  be  made  local  in  just the same way as any
              other parameter.

              This option is set by default for backward compati-
              bility; it is not recommended that its behaviour be
              relied upon.  Note that the builtin  export  always
              sets both the -x and -g flags, and hence its effect
              extends beyond the scope of the enclosing function;
              this  is  the  most  portable  way  to achieve this
              behaviour.

       GLOBAL_RCS (-d) <D>
              If  this  option  is  unset,  the   startup   files
              /etc/zprofile,    /etc/zshrc,    /etc/zlogin    and
              /etc/zlogout will not be run.  It can  be  disabled
              and  re-enabled at any time, including inside local
              startup files (.zshrc, etc.).

       GLOB_ASSIGN <C>
              If this option is set, filename  generation  (glob-
              bing) is performed on the right hand side of scalar
              parameter assignments  of  the  form  `name=pattern
              (e.g.  `foo=*').   If  the result has more than one
              word the parameter will become an array with  those
              words  as  arguments.  This  option is provided for
              backwards compatibility only:  globbing  is  always
              performed  on  the right hand side of array assign-
              ments of the form `name=(value)'  (e.g.  `foo=(*)')
              and this form is recommended for clarity; with this
              option set, it is not possible to  predict  whether
              the result will be an array or a scalar.

       GLOB_COMPLETE
              When  the  current  word has a glob pattern, do not
              insert all the words resulting from  the  expansion
              but  generate  matches  as for completion and cycle
              through them like MENU_COMPLETE.  The  matches  are
              generated  as  if a `*' was added to the end of the
              word,  or  inserted  at  the   cursor   when   COM-
              PLETE_IN_WORD  is  set.  This actually uses pattern
              matching, not globbing, so it works  not  only  for
              files but for any completion, such as options, user
              names, etc.

       GLOB_DOTS (-4)
              Do not require a leading `.' in a  filename  to  be
              matched explicitly.

       GLOB_SUBST <C> <K> <S>
              Treat   any  characters  resulting  from  parameter
              expansion as being eligible for file expansion  and
              filename  generation,  and any characters resulting
              from command substitution  as  being  eligible  for
              filename   generation.    Braces   (and  commas  in
              between) do not become eligible for expansion.

       HASH_CMDS <D>
              Note the location of each command the first time it
              is  executed.   Subsequent  invocations of the same
              command will use the  saved  location,  avoiding  a
              path  search.   If  this  option  is unset, no path
              hashing is done at all.  However, when  CORRECT  is
              set,  commands  whose  names  do  not appear in the
              functions or aliases  hash  tables  are  hashed  in
              order to avoid reporting them as spelling errors.

       HASH_DIRS <D>
              Whenever  a command name is hashed, hash the direc-
              tory containing it, as well as all directories that
              occur  earlier  in the path.  Has no effect if nei-
              ther HASH_CMDS nor CORRECT is set.

       HASH_LIST_ALL <D>
              Whenever a command completion  is  attempted,  make
              sure the entire command path is hashed first.  This
              makes the first completion slower.

       HIST_ALLOW_CLOBBER
              Add `|' to  output  redirections  in  the  history.
              This  allows  history  references  to clobber files
              even when CLOBBER is unset.

       HIST_BEEP <D>
              Beep when an attempt is made to  access  a  history
              entry which isn't there.

       HIST_EXPIRE_DUPS_FIRST
              If  the internal history needs to be trimmed to add
              the current command line, setting this option  will
              cause the oldest history event that has a duplicate
              to be lost before losing a unique  event  from  the
              list.  You should be sure to set the value of HIST-
              SIZE to a larger number than SAVEHIST in  order  to
              give  you some room for the duplicated events, oth-
              erwise  this   option   will   behave   just   like
              HIST_IGNORE_ALL_DUPS once the history fills up with
              unique events.

       HIST_FIND_NO_DUPS
              When searching for history entries in the line edi-
              tor, do not display duplicates of a line previously
              found, even if the duplicates are not contiguous.

       HIST_IGNORE_ALL_DUPS
              If a new command line being added  to  the  history
              list  duplicates an older one, the older command is
              removed from the list (even if it is not the previ-
              ous event).

       HIST_IGNORE_DUPS (-h)
              Do not enter command lines into the history list if
              they are duplicates of the previous event.

       HIST_IGNORE_SPACE (-g)
              Remove command lines from the history list when the
              first character on the line is a space, or when one
              of the expanded aliases contains a  leading  space.
              Note  that the command lingers in the internal his-
              tory until the next command is  entered  before  it
              vanishes, allowing you to briefly reuse or edit the
              line.  If you want to make  it  vanish  right  away
              without  entering another command, type a space and
              press return.

       HIST_NO_FUNCTIONS
              Remove function definitions from the history  list.
              Note that the function lingers in the internal his-
              tory until the next command is  entered  before  it
              vanishes, allowing you to briefly reuse or edit the
              definition.

       HIST_NO_STORE
              Remove the history (fc -l) command from the history
              list  when  invoked.  Note that the command lingers
              in the internal history until the next  command  is
              entered before it vanishes, allowing you to briefly
              reuse or edit the line.

       HIST_REDUCE_BLANKS
              Remove superfluous blanks from  each  command  line
              being added to the history list.

       HIST_SAVE_NO_DUPS
              When  writing  out the history file, older commands
              that duplicate newer ones are omitted.

       HIST_VERIFY
              Whenever the user enters a line with history expan-
              sion,  don't  execute  the  line directly; instead,
              perform history expansion and reload the line  into
              the editing buffer.

       HUP <Z>
              Send  the HUP signal to running jobs when the shell
              exits.

       IGNORE_BRACES (-I) <S>
              Do not perform brace expansion.

       IGNORE_EOF (-7)
              Do not exit on end-of-file.   Require  the  use  of
              exit  or  logout instead.  However, ten consecutive
              EOFs will cause the shell to exit anyway, to  avoid
              the shell hanging if its tty goes away.

              Also, if this option is set and the Zsh Line Editor
              is used, widgets implemented by shell functions can
              be bound to EOF (normally Control-D) without print-
              ing the normal warning message.   This  works  only
              for normal widgets, not for completion widgets.

       INC_APPEND_HISTORY
              This  options works like APPEND_HISTORY except that
              new history lines are added to the $HISTFILE incre-
              mentally (as soon as they are entered), rather than
              waiting until the shell is  killed.   The  file  is
              periodically  trimmed to the number of lines speci-
              fied  by  $SAVEHIST,  but  can  exceed  this  value
              between trimmings.

       INTERACTIVE (-i, ksh: -i)
              This  is  an interactive shell.  This option is set
              upon initialisation if the standard input is a  tty
              and  commands  are  being read from standard input.
              (See the discussion of SHIN_STDIN.)  This heuristic
              may  be  overridden  by specifying a state for this
              option on the command  line.   The  value  of  this
              option  cannot  be  changed anywhere other than the
              command line.

       INTERACTIVE_COMMENTS (-k) <K> <S>
              Allow comments even in interactive shells.

       KSH_ARRAYS <K> <S>
              Emulate ksh array handling as closely as  possible.
              If  this option is set, array elements are numbered
              from zero, an  array  parameter  without  subscript
              refers  to  the  first element instead of the whole
              array, and braces are required to  delimit  a  sub-
              script  (`${path[2]}' rather than just `$path[2]').

       KSH_AUTOLOAD <K> <S>
              Emulate ksh function autoloading.  This means  that
              when  a  function  is autoloaded, the corresponding
              file is merely executed, and must define the  func-
              tion  itself.  (By default, the function is defined
              to the contents of the  file.   However,  the  most
              common ksh-style case - of the file containing only
              a simple definition of the  function  -  is  always
              handled in the ksh-compatible manner.)

       KSH_GLOB <K>
              In  pattern  matching, the interpretation of paren-
              theses is affected by a preceding  `@',  `*',  `+',
              `?' or `!'.  See the section `Filename Generation'.

       KSH_OPTION_PRINT <K>
              Alters  the  way  options  settings  are   printed:
              instead of separate lists of set and unset options,
              all options are shown, marked `on' if they  are  in
              the non-default state, `off' otherwise.

       KSH_TYPESET <K>
              Alters  the  way arguments to the typeset family of
              commands, including declare, export,  float,  inte-
              ger,  local  and  readonly, are processed.  Without
              this option, zsh will perform normal word splitting
              after  command and parameter expansion in arguments
              of an assignment; with it, word splitting does  not
              take place in those cases.

       LIST_AMBIGUOUS <D>
              This  option works when AUTO_LIST or BASH_AUTO_LIST
              is also set.  If there is an unambiguous prefix  to
              insert  on the command line, that is done without a
              completion list being displayed;  in  other  words,
              auto-listing  behaviour only takes place when noth-
              ing  would   be   inserted.    In   the   case   of
              BASH_AUTO_LIST,  this  means  that the list will be
              delayed to the third call of the function.

       LIST_BEEP <D>
              Beep on an ambiguous completion.  More  accurately,
              this forces the completion widgets to return status
              1 on an  ambiguous  completion,  which  causes  the
              shell  to beep if the option BEEP is also set; this
              may be modified if  completion  is  called  from  a
              user-defined widget.

       LIST_PACKED
              Try  to make the completion list smaller (occupying
              less lines) by printing the matches in columns with
              different widths.

       LIST_ROWS_FIRST
              Lay out the matches in completion lists sorted hor-
              izontally, that is, the  second  match  is  to  the
              right of the first one, not under it as usual.

       LIST_TYPES (-X) <D>
              When  listing  files that are possible completions,
              show the type of each file with a trailing  identi-
              fying mark.

       LOCAL_OPTIONS <K>
              If this option is set at the point of return from a
              shell function, all  the  options  (including  this
              one) which were in force upon entry to the function
              are restored.  Otherwise, only this option and  the
              XTRACE  and  PRINT_EXIT_VALUE options are restored.
              Hence if this is explicitly unset by a shell  func-
              tion  the  other  options  in force at the point of
              return will remain so.  A shell function  can  also
              guarantee itself a known shell configuration with a
              formulation like `emulate -L zsh'; the -L activates
              LOCAL_OPTIONS.

       LOCAL_TRAPS <K>
              If  this  option  is  set when a signal trap is set
              inside a function, then the previous status of  the
              trap  for  that  signal  will  be restored when the
              function exits.  Note that this option must be  set
              prior to altering the trap behaviour in a function;
              unlike LOCAL_OPTIONS, the value on  exit  from  the
              function  is irrelevant.  However, it does not need
              to be set before any global trap  for  that  to  be
              correctly restored by a function.  For example,

                     unsetopt localtraps
                     trap - INT
                     fn() { setopt localtraps; trap '' INT; sleep 3; }

              will  restore normally handling of SIGINT after the
              function exits.

       LOGIN (-l, ksh: -l)
              This is a login  shell.   If  this  option  is  not
              explicitly  set,  the shell is a login shell if the
              first character of the argv[0] passed to the  shell
              is a `-'.

       LONG_LIST_JOBS (-R)
              List jobs in the long format by default.

       MAGIC_EQUAL_SUBST
              All   unquoted   arguments   of   the   form  `any-
              thing=expression' appearing after the command  name
              have  filename expansion (that is, where expression
              has a leading `~' or `=') performed  on  expression
              as if it were a parameter assignment.  The argument
              is not otherwise treated specially; it is passed to
              the  command  as a single argument, and not used as
              an actual parameter assignment.   For  example,  in
              echo  foo=~/bar:~/rod,  both occurrences of ~ would
              be replaced.  Note that this  happens  anyway  with
              typeset and similar statements.

              This option respects the setting of the KSH_TYPESET
              option.  In other words, if  both  options  are  in
              effect, arguments looking like assignments will not
              undergo wordsplitting.

       MAIL_WARNING (-U)
              Print a warning message if a  mail  file  has  been
              accessed since the shell last checked.

       MARK_DIRS (-8, ksh: -X)
              Append  a  trailing  `/'  to  all  directory  names
              resulting from filename generation (globbing).

       MENU_COMPLETE (-Y)
              On an ambiguous completion, instead of listing pos-
              sibilities or beeping, insert the first match imme-
              diately.  Then when completion is requested  again,
              remove the first match and insert the second match,
              etc.  When there are no more matches,  go  back  to
              the  first one again.  reverse-menu-complete may be
              used to loop through the list in the  other  direc-
              tion. This option overrides AUTO_MENU.

       MONITOR (-m, ksh: -m)
              Allow  job  control.  Set by default in interactive
              shells.

       MULTIOS <Z>
              Perform implicit tees or cats when  multiple  redi-
              rections  are  attempted (see the section `Redirec-
              tion').

       NOMATCH (+3) <C> <Z>
              If  a  pattern  for  filename  generation  has   no
              matches,  print  an  error,  instead  of leaving it
              unchanged in the argument list.  This also  applies
              to file expansion of an initial `~' or `='.

       NOTIFY (-5, ksh: -b) <Z>
              Report  the  status of background jobs immediately,
              rather than waiting until just  before  printing  a
              prompt.

       NULL_GLOB (-G)
              If   a  pattern  for  filename  generation  has  no
              matches, delete the pattern from the argument  list
              instead  of reporting an error.  Overrides NOMATCH.

       NUMERIC_GLOB_SORT
              If numeric filenames are matched by a filename gen-
              eration  pattern,  sort  the  filenames numerically
              rather than lexicographically.

       OCTAL_ZEROES <S>
              Interpret any integer constant beginning with  a  0
              as   octal,   per   IEEE   Std   1003.2-1992   (ISO
              9945-2:1993).  This is not enabled by default as it
              causes  problems with parsing of, for example, date
              and time strings with leading zeroes.

       OVERSTRIKE
              Start up the line editor in overstrike mode.

       PATH_DIRS (-Q)
              Perform a path search even on  command  names  with
              slashes  in  them.   Thus if `/usr/local/bin' is in
              the user's path, and he or she  types  `X11/xinit',
              the command `/usr/local/bin/X11/xinit' will be exe-
              cuted (assuming it  exists).   Commands  explicitly
              beginning  with  `/', `./' or `../' are not subject
              to the path search.  This also  applies  to  the  .
              builtin.

              Note  that  subdirectories of the current directory
              are always searched for  executables  specified  in
              this  form.   This  takes  place  before any search
              indicated by this option, and regardless of whether
              `.'  or the current directory appear in the command
              search path.

       POSIX_BUILTINS <K> <S>
              When this option is set the command builtin can  be
              used  to execute shell builtin commands.  Parameter
              assignments specified before  shell  functions  and
              special  builtins  are  kept after the command com-
              pletes unless the special builtin is prefixed  with
              the  command  builtin.   Special builtins are ., :,
              break, continue, declare, eval, exit, export, inte-
              ger,  local,  readonly, return, set, shift, source,
              times, trap and unset.

       PRINT_EIGHT_BIT
              Print eight bit characters literally in  completion
              lists,  etc.   This option is not necessary if your
              system correctly returns the printability of  eight
              bit characters (see ctype(e)).

       PRINT_EXIT_VALUE (-1)
              Print the exit value of programs with non-zero exit
              status.

       PRIVILEGED (-p, ksh: -p)
              Turn on privileged mode. This is enabled  automati-
              cally  on  startup if the effective user (group) ID
              is not equal to the real user (group) ID.   Turning
              this option off causes the effective user and group
              IDs to be set to the real user and group IDs.  This
              option  disables  sourcing  user startup files.  If
              zsh is invoked as `sh' or `ksh'  with  this  option
              set,  /etc/suid_profile is sourced (after /etc/pro-
              file on interactive shells). Sourcing ~/.profile is
              disabled  and  the  contents of the ENV variable is
              ignored. This option cannot be changed using the -m
              option  of  setopt  and  unsetopt,  and changing it
              inside  a  function  always  changes  it   globally
              regardless of the LOCAL_OPTIONS option.

       PROMPT_BANG <K>
              If   set,   `!'  is  treated  specially  in  prompt
              expansion.  See the section `Prompt Expansion'.

       PROMPT_CR (+V) <D>
              Print a carriage  return  just  before  printing  a
              prompt  in  the line editor.  This is on by default
              as multi-line editing is only possible if the  edi-
              tor knows where the start of the line appears.

       PROMPT_PERCENT <C> <Z>
              If  set,  `%' is treated specially in prompt expan-
              sion.  See the section `Prompt Expansion'.

       PROMPT_SUBST <K>
              If set, parameter expansion,  command  substitution
              and  arithmetic expansion are performed in prompts.

       PUSHD_IGNORE_DUPS
              Don't push multiple copies of  the  same  directory
              onto the directory stack.

       PUSHD_MINUS
              Exchanges  the  meanings  of  `+' and `-' when used
              with a number to specify a directory in the  stack.

       PUSHD_SILENT (-E)
              Do  not  print  the  directory stack after pushd or
              popd.

       PUSHD_TO_HOME (-D)
              Have  pushd  with  no  arguments  act  like  `pushd
              $HOME'.

       RC_EXPAND_PARAM (-P)
              Array  expansions  of the form `foo${xx}bar', where
              the parameter xx is set to (a b c), are substituted
              with  `fooabar  foobbar  foocbar'  instead  of  the
              default `fooa b cbar'.

       RC_QUOTES
              Allow the character sequence `''' to signify a sin-
              gle  quote within singly quoted strings.  Note this
              does not apply in quoted strings using  the  format
              $'...',  where  a  backslashed  single quote can be
              used.

       RCS (+f) <D>
              After /etc/zshenv is sourced on startup, source the
              .zshenv,   /etc/zprofile,   .zprofile,  /etc/zshrc,
              .zshrc, /etc/zlogin, .zlogin, and  .zlogout  files,
              as  described  in  the  section  `Files'.   If this
              option is unset,  the  /etc/zshenv  file  is  still
              sourced,  but any of the others will not be; it can
              be set at any time to prevent the remaining startup
              files  after the currently executing one from being
              sourced.

       REC_EXACT (-S)
              In completion, recognize exact matches even if they
              are ambiguous.

       RESTRICTED (-r)
              Enables  restricted  mode.   This  option cannot be
              changed using unsetopt, and  setting  it  inside  a
              function  always  changes it globally regardless of
              the  LOCAL_OPTIONS   option.    See   the   section
              `Restricted Shell'.

       RM_STAR_SILENT (-H) <K> <S>
              Do  not  query  the user before executing `rm *' or
              `rm path/*'.

       RM_STAR_WAIT
              If querying the user before executing `rm *' or `rm
              path/*', first wait ten seconds and ignore anything
              typed in that time.  This  avoids  the  problem  of
              reflexively  answering  `yes' to the query when one
              didn't really mean it.   The  wait  and  query  can
              always be avoided by expanding the `*' in ZLE (with
              tab).

       SHARE_HISTORY <K>

              This option both imports new commands from the his-
              tory  file,  and also causes your typed commands to
              be appended to the history file (the latter is like
              specifying  INC_APPEND_HISTORY).  The history lines
              are also output with timestamps  ala  EXTENDED_HIS-
              TORY  (which makes it easier to find the spot where
              we left off reading the file after it gets re-writ-
              ten).

              By  default,  history  movement  commands visit the
              imported lines as well as the local lines, but  you
              can  toggle this on and off with the set-local-his-
              tory zle binding.  It is also possible to create  a
              zle  widget  that  will  make  some commands ignore
              imported commands, and some include them.

              If you find that you want more  control  over  when
              commands   get  imported,  you  may  wish  to  turn
              SHARE_HISTORY off, INC_APPEND_HISTORY on, and  then
              manually  import  commands  whenever  you need them
              using `fc -RI'.

       SH_FILE_EXPANSION <K> <S>
              Perform  filename  expansion  (e.g.,  ~  expansion)
              before  parameter  expansion, command substitution,
              arithmetic expansion and brace expansion.  If  this
              option is unset, it is performed after brace expan-
              sion, so  things  like  `~$USERNAME'  and  `~{pfal-
              stad,rc}' will work.

       SH_GLOB <K> <S>
              Disables  the  special meaning of `(', `|', `)' and
              '<' for globbing the result of parameter  and  com-
              mand  substitutions, and in some other places where
              the shell accepts patterns.  This option is set  by
              default if zsh is invoked as sh or ksh.

       SHIN_STDIN (-s, ksh: -s)
              Commands  are  being  read from the standard input.
              Commands are read from standard input if no command
              is  specified  with  -c  and no file of commands is
              specified.  If SHIN_STDIN is set explicitly on  the
              command  line,  any  argument  that would otherwise
              have been taken as a file to run  will  instead  be
              treated  as  a  normal  positional parameter.  Note
              that setting or unsetting this option on  the  com-
              mand line does not necessarily affect the state the
              option will have while the shell is running -  that
              is  purely  an indicator of whether on not commands
              are actually being read from standard  input.   The
              value  of  this  option  cannot be changed anywhere
              other than the command line.

       SH_NULLCMD <K> <S>
              Do not use the values of  NULLCMD  and  READNULLCMD
              when  doing  redirections, use `:' instead (see the
              section `Redirection').

       SH_OPTION_LETTERS <K> <S>
              If this option is set the shell tries to  interpret
              single  letter options (which are used with set and
              setopt) like ksh does.  This also affects the value
              of the - special parameter.

       SHORT_LOOPS <C> <Z>
              Allow the short forms of for, select, if, and func-
              tion constructs.

       SH_WORD_SPLIT (-y) <K> <S>
              Causes field splitting to be performed on  unquoted
              parameter  expansions.   Note  that this option has
              nothing to do with word splitting.  (See  the  sec-
              tion `Parameter Expansion'.)

       SINGLE_COMMAND (-t, ksh: -t)
              If  the  shell  is  reading from standard input, it
              exits after a single  command  has  been  executed.
              This  also  makes the shell non-interactive, unless
              the INTERACTIVE option is  explicitly  set  on  the
              command  line.   The value of this option cannot be
              changed anywhere other than the command line.

       SINGLE_LINE_ZLE (-M) <K>
              Use single-line command  line  editing  instead  of
              multi-line.

       SUN_KEYBOARD_HACK (-L)
              If  a  line ends with a backquote, and there are an
              odd number of backquotes on the  line,  ignore  the
              trailing  backquote.   This  is useful on some key-
              boards where the return key is too small,  and  the
              backquote key lies annoyingly close to it.

       UNSET (+u, ksh: +u) <K> <S> <Z>
              Treat  unset  parameters as if they were empty when
              substituting.  Otherwise they  are  treated  as  an
              error.

       VERBOSE (-v, ksh: -v)
              Print shell input lines as they are read.

       XTRACE (-x, ksh: -x)
              Print commands and their arguments as they are exe-
              cuted.

       ZLE (-Z)
              Use the zsh line editor.  Set by default in  inter-
              active shells connected to a terminal.

OPTION ALIASES
       Some  options  have  alternative names.  These aliases are
       never used for output, but can be used  just  like  normal
       option names when specifying options to the shell.

       BRACE_EXPAND
              NO_IGNORE_BRACES (ksh and bash compatibility)

       DOT_GLOB
              GLOB_DOTS (bash compatibility)

       HASH_ALL
              HASH_CMDS (bash compatibility)

       HIST_APPEND
              APPEND_HISTORY (bash compatibility)

       HIST_EXPAND
              BANG_HIST (bash compatibility)

       LOG    NO_HIST_NO_FUNCTIONS (ksh compatibility)

       MAIL_WARN
              MAIL_WARNING (bash compatibility)

       ONE_CMD
              SINGLE_COMMAND (bash compatibility)

       PHYSICAL
              CHASE_LINKS (ksh and bash compatibility)

       PROMPT_VARS
              PROMPT_SUBST (bash compatibility)

       STDIN  SHIN_STDIN (ksh compatibility)

       TRACK_ALL
              HASH_CMDS (ksh compatibility)

SINGLE LETTER OPTIONS
   Default set
       -0     CORRECT
       -1     PRINT_EXIT_VALUE
       -2     NO_BAD_PATTERN
       -3     NO_NOMATCH
       -4     GLOB_DOTS
       -5     NOTIFY
       -6     BG_NICE
       -7     IGNORE_EOF
       -8     MARK_DIRS
       -9     AUTO_LIST
       -B     NO_BEEP
       -C     NO_CLOBBER
       -D     PUSHD_TO_HOME
       -E     PUSHD_SILENT
       -F     NO_GLOB
       -G     NULL_GLOB
       -H     RM_STAR_SILENT
       -I     IGNORE_BRACES
       -J     AUTO_CD
       -K     NO_BANG_HIST
       -L     SUN_KEYBOARD_HACK
       -M     SINGLE_LINE_ZLE
       -N     AUTO_PUSHD
       -O     CORRECT_ALL
       -P     RC_EXPAND_PARAM
       -Q     PATH_DIRS
       -R     LONG_LIST_JOBS
       -S     REC_EXACT
       -T     CDABLE_VARS
       -U     MAIL_WARNING
       -V     NO_PROMPT_CR
       -W     AUTO_RESUME
       -X     LIST_TYPES
       -Y     MENU_COMPLETE
       -Z     ZLE
       -a     ALL_EXPORT
       -e     ERR_EXIT
       -f     NO_RCS
       -g     HIST_IGNORE_SPACE
       -h     HIST_IGNORE_DUPS
       -i     INTERACTIVE
       -k     INTERACTIVE_COMMENTS
       -l     LOGIN
       -m     MONITOR
       -n     NO_EXEC
       -p     PRIVILEGED
       -r     RESTRICTED
       -s     SHIN_STDIN
       -t     SINGLE_COMMAND
       -u     NO_UNSET
       -v     VERBOSE
       -w     CHASE_LINKS
       -x     XTRACE
       -y     SH_WORD_SPLIT

   sh/ksh emulation set
       -C     NO_CLOBBER
       -X     MARK_DIRS
       -a     ALL_EXPORT
       -b     NOTIFY
       -e     ERR_EXIT
       -f     NO_GLOB
       -i     INTERACTIVE
       -l     LOGIN
       -m     MONITOR
       -n     NO_EXEC
       -p     PRIVILEGED
       -r     RESTRICTED
       -s     SHIN_STDIN
       -t     SINGLE_COMMAND
       -u     NO_UNSET
       -v     VERBOSE
       -x     XTRACE

   Also note
       -A     Used by set for setting arrays
       -b     Used  on  the command line to specify end of option
              processing
       -c     Used on the command line to specify a  single  com-
              mand
       -m     Used by setopt for pattern-matching option setting
       -o     Used  in  all  places  to  allow use of long option
              names
       -s     Used by set to sort positional parameters



zsh 4.0.4                October 26, 2001           ZSHOPTIONS(S)