ZSHOPTIONS(1)

ZSHOPTIONS(1)

zshmisc Home Page User Commands Index zshparam


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 "setopt
       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 when the shell  is  emulating  sh  or
       ksh.   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".

DESCRIPTIONS
              ALL_EXPORT (-a, ksh: -a)
                     All  parameters  subsequently  defined   are
                     automatically exported.
              ALWAYS_LAST_PROMPT
                     If  unset,  key  functions that list comple-
                     tions try to return to the  last  prompt  if
                     given a numeric argument. If set these func-
                     tions try to return to the  last  prompt  if
                     given no numeric argument.
              ALWAYS_TO_END
                     If  a completion with the cursor in the word
                     was started  and  it  results  in  only  one
                     match,  the  cursor  is placed at the end of
                     the word.
              APPEND_HISTORY
                     If this is set,  zsh  sessions  will  append
                     their  history  list  to  the  history file,
                     rather than  overwrite  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 not in the hash table, and
                     there exists an executable directory by that
                     name,  perform the cd command to that direc-
                     tory.
              AUTO_LIST (-9)
                     Automatically list choices on  an  ambiguous
                     completion.
              AUTO_MENU
                     Automatically  use menu completion after the
                     second consecutive request  for  completion,
                     for  example by pressing the TAB key repeat-
                     edly. This option is overridden by MENU_COM-
                     PLETE.
              AUTO_NAME_DIRS
                     Any  parameter  that  is set to the absolute
                     name of a directory  immediately  becomes  a
                     name  for  that  directory in the usual form
                     ~param.  If this  option  is  not  set,  the
                     parameter  must  be used in that form for it
                     to become a name (a command-line  completion
                     is sufficient for this).
              AUTO_PARAM_KEYS
                     If  a  parameter  name was completed and the
                     next character typed is one  of  those  that
                     have  to  come directly after the name (like
                     `}', `:', etc.) they are placed there  auto-
                     matically.
              AUTO_PARAM_SLASH
                     If a parameter is completed whose content is
                     the name of a directory, then add a trailing
                     slash.
              AUTO_PUSHD (-N)
                     Make  cd  push  the  old  directory onto the
                     directory stack.
              AUTO_REMOVE_SLASH
                     When the last  character  resulting  from  a
                     completion is a slash and the next character
                     typed is a word delimiter, remove the slash.
              AUTO_RESUME (-W)
                     Treat  single  word  simple commands without
                     redirection as candidates for resumption  of
                     an existing job.
              BAD_PATTERN (+2)
                     If  a  pattern  for  filename  generation is
                     badly  formed,  print  an  error.   If  this
                     option  is  unset,  the pattern will be left
                     unchanged.
              BANG_HIST (+K)
                     Perform textual history substitution, treat-
                     ing the character ! specially.
              BEEP (+B)
                     Beep.
              BG_NICE (-6)
                     Run all background jobs at a lower priority.
                     This option is set by default.
              BRACE_CCL
                     Expand expressions in braces which would not
                     otherwise undergo brace expansion to a lexi-
                     cally ordered list of  all  the  characters.
                     See  the section BRACE EXPANSION in the zsh-
                     expn manual page.
              BSD_ECHO
                     Make the echo builtin  compatible  with  the
                     BSD  echo(1)  command.   This disables back-
                     slashed escape  sequences  in  echo  strings
                     unless the -e option is specified.
              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 Filename Expansion
                     above).
              CHASE_LINKS (-w)
                     Resolve symbolic links to their true values.
              CLOBBER (+C, ksh: +C)
                     Allows  >>  redirection  to truncate existing
                     files, and >>>> to create files.  Otherwise >>!
                     must  be used to truncate a file, and >>>>! to
                     create a file.
              COMPLETE_ALIASES
                     If set, aliases on the command line are  not
                     internally  substituted before completion is
                     attempted.
              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
                     A history reference without an event  speci-
                     fier  will always refer to the previous com-
                     mand.
              CSH_JUNKIE_LOOPS
                     Allow loop bodies to take  the  form  "list;
                     end" instead of "do list; done".
              CSH_JUNKIE_QUOTES
                     Complain if a quoted expression runs off the
                     end of a line;  prevent  quoted  expressions
                     from containing unescaped newlines.
              CSH_NULL_GLOB
                     If  a pattern for filename generation has no
                     matches, delete the pattern from  the  argu-
                     ment list; do not report an error unless all
                     the patterns in a command have  no  matches.
                     Overrides NULL_GLOB.
              EQUALS Perform = filename substitution.
              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 initializa-
                     tion scripts.
              EXEC (+n, ksh: +n)
                     Do execute commands.  Without  this  option,
                     commands  are  read  and  checked for syntax
                     errors, but not executed.
              EXTENDED_GLOB
                     Treat the #, ~ and ^ characters as  part  of
                     patterns  for filename generation, etc.  (An
                     initial unquoted  ~  always  produces  named
                     directory expansion as in Filename Expansion
                     above.)
              EXTENDED_HISTORY
                     Save beginning and ending timestamps to  the
                     history  file.   The  format of these times-
                     tamps    is    :<beginning     time>:<ending
                     time>:<command>.
              FLOW_CONTROL
                     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
                     When executing a shell function or  sourcing
                     a  script, set $0 temporarily to the name of
                     the function/script.
              GLOB (+F, ksh: +f)
                     Perform filename generation.
              GLOB_ASSIGN
                     If this option is set,  filename  generation
                     (globbing)  is  performed  on the right hand
                     side of scalar parameter assignments of  the
                     form  name=pattern  (e.g. `param=*'). If the
                     result has more than one word the  parameter
                     will  become  an  array  with those words as
                     arguments. This option is provided for back-
                     wards compatibility only: globbing is always
                     performed on the right hand  side  of  array
                     assignments  of  the  form  `name=( value )'
                     (e.g. `param=(*)') and this form  is  recom-
                     mended  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   cycle  through  them  like
                     MENU_COMPLETE. If no matches  are  found,  a
                     `*'  is  added  to  the  end  of the word or
                     inserted at the cursor  if  COMPLETE_IN_WORD
                     is  set,  and  expansion is attempted again.
                     Using patterns works not only for files  but
                     for  all  completions, such as options, user
                     names, etc.
              GLOB_DOTS (-4)
                     Do not require a leading . in a filename  to
                     be matched explicitly.
              GLOB_SUBST
                     Treat  any characters resulting from parame-
                     ter substitution as being eligible for  file
                     expansion  and  filename generation, and any
                     characters resulting from command  substitu-
                     tion  as being eligible for filename genera-
                     tion.
              HASH_CMDS
                     Place the location of each  command  in  the
                     hash  table  the  first time it is executed.
                     If this option is  unset,  no  path  hashing
                     will be done at all.
              HASH_DIRS
                     Whenever  a  command  is  executed, hash the
                     directory containing  it,  as  well  as  all
                     directories  that occur earlier in the path.
                     Has no effect if HASH_CMDS is unset.
              HASH_LIST_ALL
                     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 his-
                     tory.  This  allows  history  references  to
                     clobber files even when CLOBBER is unset.
              HIST_BEEP
                     Beep  when  an  attempt  is made to access a
                     history entry which isn't there.
              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)
                     Do not enter command lines into the  history
                     list  if any command on the line begins with
                     a blank.
              HIST_NO_STORE
                     Remove the history (fc -l) command from  the
                     history when invoked.
              HIST_VERIFY
                     Whenever the user enters a line with history
                     substitution,   don't   execute   the   line
                     directly; instead, perform history substitu-
                     tion and reload the line  into  the  editing
                     buffer.
              HUP    Send the HUP signal to running jobs when the
                     shell exits.
              IGNORE_BRACES (-I)
                     Do not perform brace expansion.
              IGNORE_EOF (-7)
                     Do not exit on end-of-file.  Require the use
                     of exit or logout instead.
              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 overrid-
                     den 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)
                     Allow comments even in interactive shells.
              KSH_ARRAYS
                     Emulate  ksh  array  handling  as closely as
                     possible. If this option is set, array  ele-
                     ments  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_OPTION_PRINT
                     Alters the way options settings are printed.
              LIST_AMBIGUOUS
                     If this option is set, completions are shown
                     only if the completions don't have  a  unam-
                     biguous  prefix  or  suffix  that  could  be
                     inserted in the command line.
              LIST_BEEP
                     Beep on an ambiguous completion.
              LIST_TYPES (-X)
                     When listing files that are possible comple-
                     tions,  show  the  type  of each file with a
                     trailing identifying mark.
              LOCAL_OPTIONS
                     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
                     function  the  other options in force at the
                     point of return will remain so.
              LOGIN (-l, ksh: -l)
                     This is a login shell.
              LONG_LIST_JOBS (-R)
                     List jobs in the long format by default.
              MAGIC_EQUAL_SUBST
                     All unquoted arguments of the  form  identi-
                     fier=expression  appearing after the command
                     name have filename expansion (that is, where
                     expression  has  a  leading `~' or `=') per-
                     formed on expression as if it were a parame-
                     ter  assignment.  The argument is not other-
                     wise treated specially: in other  words,  it
                     is  subsequently  treated  as a single word,
                     not as an assignment.
              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 (glob-
                     bing).
              MENU_COMPLETE (-Y)
                     On an ambiguous completion, instead of list-
                     ing  possibilities  or  beeping,  insert the
                     first match immediately.  Then when  comple-
                     tion  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  direction.  This   option   overrides
                     AUTO_MENU.
              MONITOR (-m, ksh: -m)
                     Allow job control.  Set by default in inter-
                     active shells.
              MULTIOS
                     Perform implicit tees or cats when  multiple
                     redirections are attempted (see the REDIREC-
                     TION section).
              NOMATCH (+3)
                     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)
                     Report the status of background jobs immedi-
                     ately, 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 argu-
                     ment list instead  of  reporting  an  error.
                     Overrides NOMATCH.
              NUMERIC_GLOB_SORT
                     If  numeric filenames are matched by a file-
                     name generation pattern, sort the  filenames
                     numerically rather than lexicographically.
              OVER_STRIKE
                     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    types    "X11/xinit",    the   command
                     "/usr/local/bin/X11/xinit" will be  executed
                     (assuming it exists).  This applies to the .
                     builtin as well  as  to  command  execution.
                     Commands  explicitly  beginning with "./" or
                     "../" are not subject to path search.
              POSIX_BUILTINS
                     When this option is set the command  builtin
                     can  be  used  to execute shell builtin com-
                     mands.   Parameter   assignments   specified
                     before  shell functions and special builtins
                     are kept after the command completes  unless
                     the  special  builtin  is  prefixed with the
                     command builtin.  Special builtins are ., :,
                     break,   continue,   declare,   eval,  exit,
                     export, integer,  local,  readonly,  return,
                     set, shift, source, times, trap and unset.
              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
                     automatically  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/profile on interactive shells).
                     Sourcing ~/.profile is disabled and the con-
                     tents  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_CR (+V)
                     Print a carriage return just before printing
                     a prompt in the line editor.
              PROMPT_SUBST
                     If set, parameter expansion, command substi-
                     tution and arithmetic expansion is performed
                     in prompts.
              PUSHD_IGNORE_DUPS
                     Don't  push  multiple  copies  of  the  same
                     directory onto the directory stack.
              PUSHD_MINUS
                     See popd below.
              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
                     single quote within singly quoted strings.
              RCS (+f)
                     After  /etc/zshenv  is  sourced  on startup,
                     source the /etc/zshrc, .zshrc,  /etc/zlogin,
                     .zlogin, and .zlogout files, as described in
                     STARTUP/SHUTDOWN FILES.  If this  option  is
                     unset, only the /etc/zshenv file is sourced.
              REC_EXACT (-S)
                     In completion, recognize exact matches  even
                     if they are ambiguous.
              RM_STAR_SILENT (-H)
                     Do  not  query the user before executing "rm
                     *" or "rm path/*".
              SH_FILE_EXPANSION
                     Perform filename expansion (e.g.,  ~  expan-
                     sion)  before  parateter  expansion, command
                     substitution, arithmetic expansion and brace
                     expansion.   If  this option is unset, it is
                     performed after brace expansion,  so  things
                     like  ``~$USERNAME'' ``~{pfalstad,rc}'' will
                     work.
              SH_GLOB
                     Disables the special meaning  of  `(',  `|',
                     `)'  and  '<'  for  globbing  the  result of
                     parameter and command substitutions, and  in
                     some  other  places  where the shell accepts
                     patterns.  This option  is  set  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 command  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_OPTION_LETTERS
                     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
                     Allow the short forms of  for,  select,  if,
                     and function constructs.
              SH_WORD_SPLIT (-y)
                     See 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  any-
                     where other than the command line.
              SINGLE_LINE_ZLE (-M)
                     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 use-
                     ful  on  some keyboards where the return key
                     is too small, and  the  backquote  key  lies
                     annoyingly close to it.
              UNSET (+u, ksh: +u)
                     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 executed.
              ZLE (-Z)
                     Use the zsh line editor.

SINGLE LETTER OPTIONS
       Default set:

       -0 CORRECT
       -1 PRINT_EXIT_VALUE
       +2 BAD_PATTERN
       +3 NOMATCH
       -4 GLOB_DOTS
       -5 NOTIFY
       -6 BG_NICE
       -7 IGNORE_EOF
       -8 MARK_DIRS
       -9 AUTO_LIST
       +B BEEP
       +C CLOBBER

       -D PUSHD_TO_HOME
       -E PUSHD_SILENT
       +F GLOB
       -G NULL_GLOB
       -H RM_STAR_SILENT
       -I IGNORE_BRACES
       -J AUTO_CD
       +K 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 PROMPT_CR
       -W AUTO_RESUME
       -X LIST_TYPES
       -Y MENU_COMPLETE
       -Z ZLE
       -a ALL_EXPORT
       -e ERR_EXIT
       +f RCS
       -g HIST_IGNORE_SPACE
       -h HIST_IGNORE_DUPS
       -i INTERACTIVE
       -k INTERACTIVE_COMMENTS
       -l LOGIN
       -m MONITOR
       +n EXEC
       -p PRIVILEGED
       -s SHIN_STDIN
       -t SINGLE_COMMAND
       +u UNSET
       -v VERBOSE
       -w CHASE_LINKS
       -x XTRACE
       -y SH_WORD_SPLIT

       sh/ksh emulation set:

       +C CLOBBER
       -X MARK_DIRS
       -a ALL_EXPORT
       -b NOTIFY
       -e ERR_EXIT
       +f GLOB
       -i INTERACTIVE
       -l LOGIN
       -m MONITOR
       +n EXEC

       -p PRIVILEGED
       -s SHIN_STDIN
       -t SINGLE_COMMAND
       +u UNSET
       -v VERBOSE
       -x XTRACE

       Also note:

       -A Used by set for setting arrays
       -c Used on the command line to specify a single command
       -m Used by setopt for pattern-matching option setting
       -o Used in all places to allow use of long option names

       Note that the use of -m in setopt and  unsetopt,  allowing
       the  specification  of  option  names  by  glob  patterns,
       clashes with the use of -m for setting the MONITOR option.

zshmisc Home Page User Commands Index zshparam