zshoptions(1)

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 syn
onym for "beep". Similarly, "tify" is not a synonym for "nonoti
fy" (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 preced
ed by -.
The sense of the single letter options may be inverted by
using + instead of -. Some of the single letter option names re
fer 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 inver
sion, "noexec".

DESCRIPTIONS

ALL_EXPORT (-a, ksh: -a)
All parameters subsequently defined are au
tomatically exported.
ALWAYS_LAST_PROMPT
If unset, key functions that list comple
tions try to return to the last prompt if given a numeric argu
ment. If set these functions 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 directory.
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 press
ing 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
in the usual form ~param. If this option is not set, the parame
ter 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 di
rectory stack.
AUTO_REMOVE_SLASH
When the last character resulting from a
completion is a slash and the next character typed is a word de
limiter, 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 bad
ly 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 lexically ordered list of
all the characters. See the section BRACE EXPANSION in the
zshexpn manual page.
BSD_ECHO
Make the echo builtin compatible with the
BSD echo(1) command. This disables backslashed escape sequences
in echo strings unless the -e option is specified.
CDABLE_VARS (-T)
If the argument to a cd command (or an im
plied 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 command.
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 un
escaped newlines.
CSH_NULL_GLOB
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 NULL_GLOB.
EQUALS Perform = filename substitution.
ERR_EXIT (-e, ksh: -e)
If a command has a non-zero exit status, ex
ecute the ZERR trap, if set, and exit. This is disabled while
running initialization scripts.
EXEC (+n, ksh: +n)
Do execute commands. Without this option,
commands are read and checked for syntax errors, but not execut
ed.
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

EXTENDED_HISTORY
Save beginning and ending timestamps to the
history file. The format of these timestamps 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 parame
ter 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
backwards 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 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 gener
ate matches as for completion and cycle through them like

MENU_COMPLETE

the end of the word, or inserted at the cursor when

COMPLETE_IN_WORD

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
Treat any characters resulting from parame
ter substitution as being eligible for file expansion and file
name generation, and any characters resulting from command sub
stitution as being eligible for filename generation.
HASH_CMDS
Place the location of each command in the
hash table the first time it is executed. If this option is un
set, no path hashing will be done at all.
HASH_DIRS
Whenever a command is executed, hash the di
rectory containing it, as well as all directories that occur ear
lier 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 histo
ry. This allows history references to clobber files even when

CLOBBER

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_REDUCE_BLANKS
Remove superfluous whitespace from each com
mand line being added to the history list.
HIST_VERIFY
Whenever the user enters a line with history
substitution, don't execute the line directly; instead, perform
history substitution 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 overridden by specifying a
state for this option on the command line. The value of this op
tion 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 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 subscript (``${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 unambiguous 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. Other
wise, only this option and the XTRACE and PRINT_EXIT_VALUE op
tions 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
identifier=expression appearing after the command name have file
name expansion (that is, where expression has a leading `~' or
`=') performed on expression as if it were a parameter assign
ment. The argument is not otherwise treated specially: in other
words, it is subsequently treated as a single word, not as an as
signment.
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 list
ing possibilities or beeping, insert the first match immediately.
Then when completion is requested again, remove the first match
and insert the second match, etc. When there are no more match
es, 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 REDIRECTION 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 argument list instead of re
porting 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/lo
cal/bin/X11/xinit" will be executed (assuming it exists). This
applies to the . builtin as well as to command execution. Com
mands 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 commands. Parameter assign
ments 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_EIGHT_BIT
Print eight bit characters literally in com
pletion lists, etc. This option is not necessary if your system
correctly returns the printability of eight bit characters (see
ctype(3)).
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 au
tomatically 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 contents of the

ENV

-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
substitution and arithmetic expansion is performed in prompts.
PUSHD_IGNORE_DUPS
Don't push multiple copies of the same di
rectory 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, arith
metic 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 sub
stitutions, and in some other places where the shell accepts pat
terns. 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

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 in
terpret single letter options (which are used with set and
setopt) like ksh does. This also affects the value of the - spe
cial 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 anywhere 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 useful 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.
zsh version 3.0 June 26, 1996
Copyright © 2010-2025 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout