{
    "content": [
        {
            "type": "text",
            "text": "# zshoptions (man)\n\n## NAME\n\nzshoptions - zsh options\n\n## Sections\n\n- **NAME**\n- **SPECIFYING OPTIONS**\n- **DESCRIPTION OF OPTIONS** (12 subsections)\n- **OPTION ALIASES**\n- **SINGLE LETTER OPTIONS** (81 subsections)\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "zshoptions",
        "section": "",
        "mode": "man",
        "summary": "zshoptions - zsh options",
        "synopsis": null,
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "-0",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-1",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-2",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-3",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-4",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-5",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-6",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-7",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-8",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-9",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-B",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-C",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-D",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-E",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-F",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-G",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-H",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-I",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-J",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-K",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-L",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-M",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-N",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-O",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-P",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-Q",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-R",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-S",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-T",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-U",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-V",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-W",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-X",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-Y",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-Z",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-a",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-e",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-f",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-g",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-h",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-i",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-k",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-l",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-m",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-n",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-p",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-r",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-s",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-t",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-u",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-v",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-w",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-x",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-y",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-C",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-T",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-X",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-a",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-b",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-e",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-f",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-i",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-l",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-m",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-n",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-p",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-r",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-s",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-t",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-u",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-v",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-x",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-A",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-b",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-c",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-m",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-o",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-s",
                "long": null,
                "arg": null,
                "description": "zsh 5.8.1 February 12, 2022 ZSHOPTIONS(1)"
            }
        ],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SPECIFYING OPTIONS",
                "lines": 23,
                "subsections": []
            },
            {
                "name": "DESCRIPTION OF OPTIONS",
                "lines": 6,
                "subsections": [
                    {
                        "name": "Changing Directories",
                        "lines": 66
                    },
                    {
                        "name": "Completion",
                        "lines": 113
                    },
                    {
                        "name": "Expansion and Globbing",
                        "lines": 203
                    },
                    {
                        "name": "History",
                        "lines": 137
                    },
                    {
                        "name": "Initialisation",
                        "lines": 27
                    },
                    {
                        "name": "Input/Output",
                        "lines": 115
                    },
                    {
                        "name": "Job Control",
                        "lines": 62
                    },
                    {
                        "name": "Prompting",
                        "lines": 37
                    },
                    {
                        "name": "Scripts and Functions",
                        "lines": 180
                    },
                    {
                        "name": "Shell Emulation",
                        "lines": 224
                    },
                    {
                        "name": "Shell State",
                        "lines": 55
                    },
                    {
                        "name": "Zle",
                        "lines": 40
                    }
                ]
            },
            {
                "name": "OPTION ALIASES",
                "lines": 37,
                "subsections": []
            },
            {
                "name": "SINGLE LETTER OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "Default set",
                        "lines": 1
                    },
                    {
                        "name": "-0",
                        "lines": 1,
                        "flag": "-0"
                    },
                    {
                        "name": "-1",
                        "lines": 1,
                        "flag": "-1"
                    },
                    {
                        "name": "-2",
                        "lines": 1,
                        "flag": "-2"
                    },
                    {
                        "name": "-3",
                        "lines": 1,
                        "flag": "-3"
                    },
                    {
                        "name": "-4",
                        "lines": 1,
                        "flag": "-4"
                    },
                    {
                        "name": "-5",
                        "lines": 1,
                        "flag": "-5"
                    },
                    {
                        "name": "-6",
                        "lines": 1,
                        "flag": "-6"
                    },
                    {
                        "name": "-7",
                        "lines": 1,
                        "flag": "-7"
                    },
                    {
                        "name": "-8",
                        "lines": 1,
                        "flag": "-8"
                    },
                    {
                        "name": "-9",
                        "lines": 1,
                        "flag": "-9"
                    },
                    {
                        "name": "-B",
                        "lines": 1,
                        "flag": "-B"
                    },
                    {
                        "name": "-C",
                        "lines": 1,
                        "flag": "-C"
                    },
                    {
                        "name": "-D",
                        "lines": 1,
                        "flag": "-D"
                    },
                    {
                        "name": "-E",
                        "lines": 1,
                        "flag": "-E"
                    },
                    {
                        "name": "-F",
                        "lines": 1,
                        "flag": "-F"
                    },
                    {
                        "name": "-G",
                        "lines": 1,
                        "flag": "-G"
                    },
                    {
                        "name": "-H",
                        "lines": 1,
                        "flag": "-H"
                    },
                    {
                        "name": "-I",
                        "lines": 1,
                        "flag": "-I"
                    },
                    {
                        "name": "-J",
                        "lines": 1,
                        "flag": "-J"
                    },
                    {
                        "name": "-K",
                        "lines": 1,
                        "flag": "-K"
                    },
                    {
                        "name": "-L",
                        "lines": 1,
                        "flag": "-L"
                    },
                    {
                        "name": "-M",
                        "lines": 1,
                        "flag": "-M"
                    },
                    {
                        "name": "-N",
                        "lines": 1,
                        "flag": "-N"
                    },
                    {
                        "name": "-O",
                        "lines": 1,
                        "flag": "-O"
                    },
                    {
                        "name": "-P",
                        "lines": 1,
                        "flag": "-P"
                    },
                    {
                        "name": "-Q",
                        "lines": 1,
                        "flag": "-Q"
                    },
                    {
                        "name": "-R",
                        "lines": 1,
                        "flag": "-R"
                    },
                    {
                        "name": "-S",
                        "lines": 1,
                        "flag": "-S"
                    },
                    {
                        "name": "-T",
                        "lines": 1,
                        "flag": "-T"
                    },
                    {
                        "name": "-U",
                        "lines": 1,
                        "flag": "-U"
                    },
                    {
                        "name": "-V",
                        "lines": 1,
                        "flag": "-V"
                    },
                    {
                        "name": "-W",
                        "lines": 1,
                        "flag": "-W"
                    },
                    {
                        "name": "-X",
                        "lines": 1,
                        "flag": "-X"
                    },
                    {
                        "name": "-Y",
                        "lines": 1,
                        "flag": "-Y"
                    },
                    {
                        "name": "-Z",
                        "lines": 1,
                        "flag": "-Z"
                    },
                    {
                        "name": "-a",
                        "lines": 1,
                        "flag": "-a"
                    },
                    {
                        "name": "-e",
                        "lines": 1,
                        "flag": "-e"
                    },
                    {
                        "name": "-f",
                        "lines": 1,
                        "flag": "-f"
                    },
                    {
                        "name": "-g",
                        "lines": 1,
                        "flag": "-g"
                    },
                    {
                        "name": "-h",
                        "lines": 1,
                        "flag": "-h"
                    },
                    {
                        "name": "-i",
                        "lines": 1,
                        "flag": "-i"
                    },
                    {
                        "name": "-k",
                        "lines": 1,
                        "flag": "-k"
                    },
                    {
                        "name": "-l",
                        "lines": 1,
                        "flag": "-l"
                    },
                    {
                        "name": "-m",
                        "lines": 1,
                        "flag": "-m"
                    },
                    {
                        "name": "-n",
                        "lines": 1,
                        "flag": "-n"
                    },
                    {
                        "name": "-p",
                        "lines": 1,
                        "flag": "-p"
                    },
                    {
                        "name": "-r",
                        "lines": 1,
                        "flag": "-r"
                    },
                    {
                        "name": "-s",
                        "lines": 1,
                        "flag": "-s"
                    },
                    {
                        "name": "-t",
                        "lines": 1,
                        "flag": "-t"
                    },
                    {
                        "name": "-u",
                        "lines": 1,
                        "flag": "-u"
                    },
                    {
                        "name": "-v",
                        "lines": 1,
                        "flag": "-v"
                    },
                    {
                        "name": "-w",
                        "lines": 1,
                        "flag": "-w"
                    },
                    {
                        "name": "-x",
                        "lines": 1,
                        "flag": "-x"
                    },
                    {
                        "name": "-y",
                        "lines": 1,
                        "flag": "-y"
                    },
                    {
                        "name": "sh/ksh emulation set",
                        "lines": 1
                    },
                    {
                        "name": "-C",
                        "lines": 1,
                        "flag": "-C"
                    },
                    {
                        "name": "-T",
                        "lines": 1,
                        "flag": "-T"
                    },
                    {
                        "name": "-X",
                        "lines": 1,
                        "flag": "-X"
                    },
                    {
                        "name": "-a",
                        "lines": 1,
                        "flag": "-a"
                    },
                    {
                        "name": "-b",
                        "lines": 1,
                        "flag": "-b"
                    },
                    {
                        "name": "-e",
                        "lines": 1,
                        "flag": "-e"
                    },
                    {
                        "name": "-f",
                        "lines": 1,
                        "flag": "-f"
                    },
                    {
                        "name": "-i",
                        "lines": 1,
                        "flag": "-i"
                    },
                    {
                        "name": "-l",
                        "lines": 1,
                        "flag": "-l"
                    },
                    {
                        "name": "-m",
                        "lines": 1,
                        "flag": "-m"
                    },
                    {
                        "name": "-n",
                        "lines": 1,
                        "flag": "-n"
                    },
                    {
                        "name": "-p",
                        "lines": 1,
                        "flag": "-p"
                    },
                    {
                        "name": "-r",
                        "lines": 1,
                        "flag": "-r"
                    },
                    {
                        "name": "-s",
                        "lines": 1,
                        "flag": "-s"
                    },
                    {
                        "name": "-t",
                        "lines": 1,
                        "flag": "-t"
                    },
                    {
                        "name": "-u",
                        "lines": 1,
                        "flag": "-u"
                    },
                    {
                        "name": "-v",
                        "lines": 1,
                        "flag": "-v"
                    },
                    {
                        "name": "-x",
                        "lines": 1,
                        "flag": "-x"
                    },
                    {
                        "name": "Also note",
                        "lines": 1
                    },
                    {
                        "name": "-A",
                        "lines": 1,
                        "flag": "-A"
                    },
                    {
                        "name": "-b",
                        "lines": 1,
                        "flag": "-b"
                    },
                    {
                        "name": "-c",
                        "lines": 1,
                        "flag": "-c"
                    },
                    {
                        "name": "-m",
                        "lines": 1,
                        "flag": "-m"
                    },
                    {
                        "name": "-o",
                        "lines": 1,
                        "flag": "-o"
                    },
                    {
                        "name": "-s",
                        "lines": 1,
                        "flag": "-s"
                    }
                ]
            }
        ],
        "sections": {
            "NAME": {
                "content": "zshoptions - zsh options\n",
                "subsections": []
            },
            "SPECIFYING OPTIONS": {
                "content": "Options  are primarily referred to by name.  These names are case insensitive and underscores\nare ignored.  For example, `allexport' is equivalent to `AlleXPort'.\n\nThe sense of an option name may be inverted by preceding it with `no', so `setopt NoBeep' is\nequivalent  to `unsetopt beep'.  This inversion can only be done once, so `nonobeep' is not a\nsynonym for `beep'.  Similarly, `tify' is not a synonym for `nonotify' (the inversion of `no‐‐\ntify').\n\nSome  options also have one or more single letter names.  There are two sets of single letter\noptions: one used by default, and another used  to  emulate  sh/ksh  (used  when  the  SHOP‐‐\nTIONLETTERS  option  is  set).   The  single letter options can be used on the shell command\nline, or with the set, setopt and unsetopt builtins, as normal Unix options preceded by `-'.\n\nThe sense of the single letter options may be inverted by using `+' instead of `-'.  Some  of\nthe  single  letter option names refer to an option being off, in which case the inversion of\nthat name refers to the option being on.  For example, `+n' is the short name of `exec',  and\n`-n' is the short name of its inversion, `noexec'.\n\nIn  strings  of  single  letter options supplied to the shell at startup, trailing whitespace\nwill be ignored; for example the string `-f    ' will be treated just as `-f', but the string\n`-f  i'  is  an  error.   This is because many systems which implement the `#!' mechanism for\ncalling scripts do not strip trailing whitespace.\n",
                "subsections": []
            },
            "DESCRIPTION OF OPTIONS": {
                "content": "In the following list, options set by default in all emulations are marked <D>; those set  by\ndefault only in csh, ksh, sh, or zsh emulations are marked <C>, <K>, <S>, <Z> as appropriate.\nWhen listing options (by `setopt', `unsetopt', `set -o' or `set +o'), those turned on by  de‐\nfault  appear  in  the list prefixed with `no'.  Hence (unless KSHOPTIONPRINT is set), `se‐‐\ntopt' shows all options whose settings are changed from the default.\n",
                "subsections": [
                    {
                        "name": "Changing Directories",
                        "content": "AUTOCD (-J)\nIf a command is issued that can't be executed as a normal command, and the command  is\nthe  name  of  a  directory, perform the cd command to that directory.  This option is\nonly applicable if the option SHINSTDIN is set, i.e. if commands are being read  from\nstandard input.  The option is designed for interactive use; it is recommended that cd\nbe used explicitly in scripts to avoid ambiguity.\n\nAUTOPUSHD (-N)\nMake cd push the old directory onto the directory stack.\n\nCDABLEVARS (-T)\nIf the argument to a cd command (or an implied cd with the AUTOCD option set) is  not\na  directory,  and  does not begin with a slash, try to expand the expression as if it\nwere preceded by a `~' (see the section `Filename Expansion').\n\nCDSILENT\nNever print the working directory after a cd (whether explicit  or  implied  with  the\nAUTOCD  option set). cd normally prints the working directory when the argument given\nto it was -, a stack entry, or the name of a directory found under CDPATH.  Note  that\nthis  is  distinct  from  pushd's  stack-printing  behaviour,  which  is controlled by\nPUSHDSILENT. This option overrides the printing-related effects of POSIXCD.\n\nCHASEDOTS\nWhen changing to a directory containing a path segment `..' which would  otherwise  be\ntreated  as canceling the previous segment in the path (in other words, `foo/..' would\nbe removed from the path, or if `..' is the first part of the path, the last  part  of\nthe current working directory would be removed), instead resolve the path to the phys‐\nical directory.  This option is overridden by CHASELINKS.\n\nFor example, suppose /foo/bar is a link to the directory /alt/rod.  Without  this  op‐\ntion set, `cd /foo/bar/..' changes to /foo; with it set, it changes to /alt.  The same\napplies if the current directory is /foo/bar and `cd ..' is used.  Note that all other\nsymbolic links in the path will also be resolved.\n\nCHASELINKS (-w)\nResolve  symbolic  links  to their true values when changing directory.  This also has\nthe effect of CHASEDOTS, i.e. a `..' path segment will be treated as referring to the\nphysical parent, even if the preceding path segment is a symbolic link.\n\nPOSIXCD <K> <S>\nModifies  the  behaviour  of cd, chdir and pushd commands to make them more compatible\nwith the POSIX standard. The behaviour with the option unset is described in the docu‐\nmentation  for the cd builtin in zshbuiltins(1).  If the option is set, the shell does\nnot test for directories beneath the local directory (`.') until after all directories\nin  cdpath  have been tested, and the cd and chdir commands do not recognise arguments\nof the form `{+|-}n' as directory stack entries.\n\nAlso, if the option is set, the conditions under which the shell prints the new direc‐\ntory  after  changing  to  it are modified.  It is no longer restricted to interactive\nshells (although printing of the directory stack with pushd is still limited to inter‐\nactive shells); and any use of a component of CDPATH, including a `.' but excluding an\nempty component that is otherwise treated as `.', causes the directory to be printed.\n\nPUSHDIGNOREDUPS\nDon't push multiple copies of the same directory onto the directory stack.\n\nPUSHDMINUS\nExchanges the meanings of `+' and `-' when used with a number to specify  a  directory\nin the stack.\n\nPUSHDSILENT (-E)\nDo not print the directory stack after pushd or popd.\n\nPUSHDTOHOME (-D)\nHave pushd with no arguments act like `pushd $HOME'.\n"
                    },
                    {
                        "name": "Completion",
                        "content": "ALWAYSLASTPROMPT <D>\nIf  unset,  key  functions  that  list completions try to return to the last prompt if\ngiven a numeric argument. If set these functions try to return to the last  prompt  if\ngiven no numeric argument.\n\nALWAYSTOEND\nIf  a  completion is performed with the cursor within a word, and a full completion is\ninserted, the cursor is moved to the end of the word.  That is, the cursor is moved to\nthe  end  of  the word if either a single match is inserted or menu completion is per‐\nformed.\n\nAUTOLIST (-9) <D>\nAutomatically list choices on an ambiguous completion.\n\nAUTOMENU <D>\nAutomatically use menu completion after the second consecutive request for completion,\nfor example by pressing the tab key repeatedly. This option is overridden by MENUCOM‐‐\nPLETE.\n\nAUTONAMEDIRS\nAny parameter that is set to the absolute name of a directory  immediately  becomes  a\nname  for  that directory, that will be used by the `%~' and related prompt sequences,\nand will be available when completion is performed on a word starting with `~'.  (Oth‐\nerwise, the parameter must be used in the form `~param' first.)\n\nAUTOPARAMKEYS <D>\nIf  a  parameter name was completed and a following character (normally a space) auto‐\nmatically inserted, and the next character typed is one of those that have to come di‐\nrectly  after  the  name  (like  `}', `:', etc.), the automatically added character is\ndeleted, so that the character typed comes immediately after the parameter name.  Com‐\npletion  in  a  brace  expansion  is affected similarly: the added character is a `,',\nwhich will be removed if `}' is typed next.\n\nAUTOPARAMSLASH <D>\nIf a parameter is completed whose content is the name  of  a  directory,  then  add  a\ntrailing slash instead of a space.\n\nAUTOREMOVESLASH <D>\nWhen  the last character resulting from a completion is a slash and the next character\ntyped is a word delimiter, a slash, or a character that ends  a  command  (such  as  a\nsemicolon or an ampersand), remove the slash.\n\nBASHAUTOLIST\nOn an ambiguous completion, automatically list choices when the completion function is\ncalled twice in succession.  This takes precedence over  AUTOLIST.   The  setting  of\nLISTAMBIGUOUS  is respected.  If AUTOMENU is set, the menu behaviour will then start\nwith the third press.  Note that this will not work with MENUCOMPLETE, since repeated\ncompletion calls immediately cycle through the list in that case.\n\nCOMPLETEALIASES\nPrevents  aliases on the command line from being internally substituted before comple‐\ntion is attempted.  The effect is to make the alias a distinct command for  completion\npurposes.\n\nCOMPLETEINWORD\nIf unset, the cursor is set to the end of the word if completion is started. Otherwise\nit stays there and completion is done from both ends.\n\nGLOBCOMPLETE\nWhen the current word has a glob pattern, do not insert all the words  resulting  from\nthe  expansion  but  generate  matches  as  for completion and cycle through them like\nMENUCOMPLETE. The matches are generated as if a `*' was added to the end of the word,\nor  inserted  at  the cursor when COMPLETEINWORD is set.  This actually uses pattern\nmatching, not globbing, so it works not only for files but for any completion, such as\noptions, user names, etc.\n\nNote that when the pattern matcher is used, matching control (for example, case-insen‐\nsitive or anchored matching) cannot be used.  This limitation only  applies  when  the\ncurrent  word  contains a pattern; simply turning on the GLOBCOMPLETE option does not\nhave this effect.\n\nHASHLISTALL <D>\nWhenever a command completion or spelling correction is attempted, make sure  the  en‐\ntire  command path is hashed first.  This makes the first completion slower but avoids\nfalse reports of spelling errors.\n\nLISTAMBIGUOUS <D>\nThis option works when AUTOLIST or BASHAUTOLIST is also set.  If there is an  unam‐\nbiguous  prefix  to insert on the command line, that is done without a completion list\nbeing displayed; in other words, auto-listing behaviour only takes place when  nothing\nwould  be  inserted.   In the case of BASHAUTOLIST, this means that the list will be\ndelayed to the third call of the function.\n\nLISTBEEP <D>\nBeep on an ambiguous completion.  More accurately, this forces the completion  widgets\nto  return  status 1 on an ambiguous completion, which causes the shell to beep if the\noption BEEP is also set; this may be modified if completion is called from a  user-de‐\nfined widget.\n\nLISTPACKED\nTry to make the completion list smaller (occupying less lines) by printing the matches\nin columns with different widths.\n\nLISTROWSFIRST\nLay out the matches in completion lists sorted horizontally, that is, the second match\nis to the right of the first one, not under it as usual.\n\nLISTTYPES (-X) <D>\nWhen  listing  files  that are possible completions, show the type of each file with a\ntrailing identifying mark.\n\nMENUCOMPLETE (-Y)\nOn an ambiguous completion, instead of listing possibilities or  beeping,  insert  the\nfirst  match  immediately.   Then when completion is requested again, remove the first\nmatch and insert the second match, etc.  When there are no more matches,  go  back  to\nthe  first  one  again.  reverse-menu-complete may be used to loop through the list in\nthe other direction. This option overrides AUTOMENU.\n\nRECEXACT (-S)\nIf the string on the command line exactly matches one of the possible completions,  it\nis accepted, even if there is another completion (i.e. that string with something else\nadded) that also matches.\n"
                    },
                    {
                        "name": "Expansion and Globbing",
                        "content": "BADPATTERN (+2) <C> <Z>\nIf a pattern for filename generation is badly formed, print  an  error  message.   (If\nthis option is unset, the pattern will be left unchanged.)\n\nBAREGLOBQUAL <Z>\nIn a glob pattern, treat a trailing set of parentheses as a qualifier list, if it con‐\ntains no `|', `(' or (if special) `~' characters.  See the section  `Filename  Genera‐\ntion'.\n\nBRACECCL\nExpand  expressions  in  braces which would not otherwise undergo brace expansion to a\nlexically ordered list of all the characters.  See the section `Brace Expansion'.\n\nCASEGLOB <D>\nMake globbing (filename generation) sensitive to case.  Note that other uses  of  pat‐\nterns are always sensitive to case.  If the option is unset, the presence of any char‐\nacter which is special to filename generation will  cause  case-insensitive  matching.\nFor  example, cvs(/) can match the directory CVS owing to the presence of the globbing\nflag (unless the option BAREGLOBQUAL is unset).\n\nCASEMATCH <D>\nMake regular expressions using the zsh/regex module (including matches with =~) sensi‐\ntive to case.\n\nCSHNULLGLOB <C>\nIf a pattern for filename generation has no matches, delete the pattern from the argu‐\nment list; do not report an error unless  all  the  patterns  in  a  command  have  no\nmatches.  Overrides NOMATCH.\n\nEQUALS <Z>\nPerform = filename expansion.  (See the section `Filename Expansion'.)\n\nEXTENDEDGLOB\nTreat  the  `#',  `~'  and `^' characters as part of patterns for filename generation,\netc.  (An initial unquoted `~' always produces named directory expansion.)\n\nFORCEFLOAT\nConstants in arithmetic evaluation will be treated as floating point even without  the\nuse  of a decimal point; the values of integer variables will be converted to floating\npoint when used in arithmetic expressions.  Integers in any base will be converted.\n\nGLOB (+F, ksh: +f) <D>\nPerform filename generation (globbing).  (See the section `Filename Generation'.)\n\nGLOBASSIGN <C>\nIf this option is set, filename generation (globbing) is performed on the  right  hand\nside of scalar parameter assignments of the form `name=pattern (e.g. `foo=*').  If the\nresult has more than one word the parameter will become an array with those  words  as\narguments.  This  option is provided for backwards compatibility only: globbing is al‐\nways performed on the right hand side of array assignments of the form  `name=(value)'\n(e.g. `foo=(*)') and this form is recommended for clarity; with this option set, it is\nnot possible to predict whether the result will be an array or a scalar.\n\nGLOBDOTS (-4)\nDo not require a leading `.' in a filename to be matched explicitly.\n\nGLOBSTARSHORT\nWhen this option is set and the default zsh-style globbing is in effect,  the  pattern\n`/*'  can  be abbreviated to `' and the pattern `*/*' can be abbreviated to *.\nHence `.c' finds a file ending in .c in any subdirectory, and `*.c' does the  same\nwhile  also  following symbolic links.  A / immediately after the `' or `*' forces\nthe pattern to be treated as the unabbreviated form.\n\nGLOBSUBST <C> <K> <S>\nTreat any characters resulting from parameter expansion as being eligible for filename\nexpansion and filename generation, and any characters resulting from command substitu‐\ntion as being eligible for filename generation.  Braces (and commas in between) do not\nbecome eligible for expansion.\n\nHISTSUBSTPATTERN\nSubstitutions  using the :s and :& history modifiers are performed with pattern match‐\ning instead of string matching.  This occurs wherever history modifiers are valid, in‐\ncluding glob qualifiers and parameters.  See the section Modifiers in zshexpn(1).\n\nIGNOREBRACES (-I) <S>\nDo  not perform brace expansion.  For historical reasons this also includes the effect\nof the IGNORECLOSEBRACES option.\n\nIGNORECLOSEBRACES\nWhen neither this option nor IGNOREBRACES is set, a sole close brace character `}' is\nsyntactically significant at any point on a command line.  This has the effect that no\nsemicolon or newline is necessary before the brace terminating a function  or  current\nshell construct.  When either option is set, a closing brace is syntactically signifi‐\ncant only in command position.  Unlike IGNOREBRACES, this  option  does  not  disable\nbrace expansion.\n\nFor  example, with both options unset a function may be defined in the following fash‐\nion:\n\nargs() { echo $# }\n\nwhile if either option is set, this does not work and something equivalent to the fol‐\nlowing is required:\n\nargs() { echo $#; }\n\nKSHGLOB <K>\nIn pattern matching, the interpretation of parentheses is affected by a preceding `@',\n`*', `+', `?' or `!'.  See the section `Filename Generation'.\n\nMAGICEQUALSUBST\nAll unquoted arguments of the form `anything=expression' appearing after  the  command\nname have filename expansion (that is, where expression has a leading `~' or `=') per‐\nformed on expression as if it were a parameter assignment.  The argument is not other‐\nwise treated specially; it is passed to the command as a single argument, and not used\nas an actual parameter assignment.  For example, in echo foo=~/bar:~/rod, both  occur‐\nrences of ~ would be replaced.  Note that this happens anyway with typeset and similar\nstatements.\n\nThis option respects the setting of the KSHTYPESET option.  In other words,  if  both\noptions are in effect, arguments looking like assignments will not undergo word split‐\nting.\n\nMARKDIRS (-8, ksh: -X)\nAppend a trailing `/' to all directory names resulting from filename generation (glob‐\nbing).\n\nMULTIBYTE <D>\nRespect  multibyte characters when found in strings.  When this option is set, strings\nare examined using the system library to determine how many bytes  form  a  character,\ndepending  on the current locale.  This affects the way characters are counted in pat‐\ntern matching, parameter values and various delimiters.\n\nThe option is on by default if the shell was compiled with  MULTIBYTESUPPORT;  other‐\nwise it is off by default and has no effect if turned on.\n\nIf the option is off a single byte is always treated as a single character.  This set‐\nting is designed purely for examining strings known to contain raw bytes or other val‐\nues  that  may  not be characters in the current locale.  It is not necessary to unset\nthe option merely because the character set for the current locale  does  not  contain\nmultibyte characters.\n\nThe option does not affect the shell's editor,  which always uses the locale to deter‐\nmine multibyte characters.  This is because the character set displayed by the  termi‐\nnal emulator is independent of shell settings.\n\nNOMATCH (+3) <C> <Z>\nIf  a pattern for filename generation has no matches, print an error, instead of leav‐\ning it unchanged in the argument list.  This also applies to file expansion of an ini‐\ntial `~' or `='.\n\nNULLGLOB (-G)\nIf a pattern for filename generation has no matches, delete the pattern from the argu‐\nment list instead of reporting an error.  Overrides NOMATCH.\n\nNUMERICGLOBSORT\nIf numeric filenames are matched by a filename generation pattern, sort the  filenames\nnumerically rather than lexicographically.\n\nRCEXPANDPARAM (-P)\nArray  expansions of the form `foo${xx}bar', where the parameter xx is set to (a b c),\nare substituted with `fooabar foobbar foocbar' instead of the default `fooa  b  cbar'.\nNote that an empty array will therefore cause all arguments to be removed.\n\nREMATCHPCRE\nIf set, regular expression matching with the =~ operator will use Perl-Compatible Reg‐\nular Expressions from the PCRE library.  (The zsh/pcre module must be available.)   If\nnot  set, regular expressions will use the extended regexp syntax provided by the sys‐\ntem libraries.\n\nSHGLOB <K> <S>\nDisables the special meaning of `(', `|', `)' and '<' for globbing the result  of  pa‐\nrameter  and  command  substitutions, and in some other places where the shell accepts\npatterns.  If SHGLOB is set but KSHGLOB is not, the shell allows the  interpretation\nof  subshell expressions enclosed in parentheses in some cases where there is no space\nbefore the opening parenthesis, e.g. !(true) is interpreted as if there were  a  space\nafter the !.  This option is set by default if zsh is invoked as sh or ksh.\n\nUNSET (+u, ksh: +u) <K> <S> <Z>\nTreat  unset  parameters  as if they were empty when substituting, and as if they were\nzero when reading their values in arithmetic expansion and arithmetic commands.   Oth‐\nerwise they are treated as an error.\n\nWARNCREATEGLOBAL\nPrint a warning message when a global parameter is created in a function by an assign‐\nment or in math context.  This often indicates that a parameter has not been  declared\nlocal  when  it should have been.  Parameters explicitly declared global from within a\nfunction using typeset -g do not cause a warning.  Note that there is no warning  when\na  local parameter is assigned to in a nested function, which may also indicate an er‐\nror.\n\nWARNNESTEDVAR\nPrint a warning message when an existing parameter from an enclosing  function  scope,\nor  global,  is  set in a function by an assignment or in math context.  Assignment to\nshell special parameters does not cause a warning.  This is the companion to WARNCRE‐‐\nATEGLOBAL  as  in  this case the warning is only printed when a parameter is not cre‐\nated.  Where possible, use of typeset -g to set the parameter  suppresses  the  error,\nbut  note that this needs to be used every time the parameter is set.  To restrict the\neffect of this option to a single function scope, use `functions -W'.\n\nFor example, the following code produces a warning for the assignment inside the func‐\ntion nested as that overrides the value within toplevel\n\ntoplevel() {\nlocal foo=\"in fn\"\nnested\n}\nnested() {\nfoo=\"in nested\"\n}\nsetopt warnnestedvar\ntoplevel\n"
                    },
                    {
                        "name": "History",
                        "content": "APPENDHISTORY <D>\nIf  this  is  set,  zsh  sessions  will append their history list to the history file,\nrather than replace it. Thus, multiple parallel zsh sessions will all have the new en‐\ntries from their history lists added to the history file, in the order that they exit.\nThe file will still be periodically re-written to trim it when  the  number  of  lines\ngrows  20% beyond the value specified by $SAVEHIST (see also the HISTSAVEBYCOPY op‐\ntion).\n\nBANGHIST (+K) <C> <Z>\nPerform textual history expansion, csh-style, treating the character `!' specially.\n\nEXTENDEDHISTORY <C>\nSave each command's beginning timestamp (in seconds since the epoch) and the  duration\n(in seconds) to the history file.  The format of this prefixed data is:\n\n`: <beginning time>:<elapsed seconds>;<command>'.\n\nHISTALLOWCLOBBER\nAdd  `|'  to  output  redirections  in the history.  This allows history references to\nclobber files even when CLOBBER is unset.\n\nHISTBEEP <D>\nBeep in ZLE when a widget attempts to access a history entry which isn't there.\n\nHISTEXPIREDUPSFIRST\nIf the internal history needs to be trimmed to add the current command  line,  setting\nthis option will cause the oldest history event that has a duplicate to be lost before\nlosing a unique event from the list.  You should be sure to set the value of  HISTSIZE\nto  a  larger  number  than SAVEHIST in order to give you some room for the duplicated\nevents, otherwise this option will behave just like HISTIGNOREALLDUPS once the his‐\ntory fills up with unique events.\n\nHISTFCNTLLOCK\nWhen  writing  out  the history file, by default zsh uses ad-hoc file locking to avoid\nknown problems with locking on some operating systems.  With this  option  locking  is\ndone  by  means of the system's fcntl call, where this method is available.  On recent\noperating systems this may provide better performance, in particular avoiding  history\ncorruption when files are stored on NFS.\n\nHISTFINDNODUPS\nWhen  searching for history entries in the line editor, do not display duplicates of a\nline previously found, even if the duplicates are not contiguous.\n\nHISTIGNOREALLDUPS\nIf a new command line being added to the history list duplicates  an  older  one,  the\nolder command is removed from the list (even if it is not the previous event).\n\nHISTIGNOREDUPS (-h)\nDo  not enter command lines into the history list if they are duplicates of the previ‐\nous event.\n\nHISTIGNORESPACE (-g)\nRemove command lines from the history list when the first character on the line  is  a\nspace,  or  when  one  of  the expanded aliases contains a leading space.  Only normal\naliases (not global or suffix aliases) have this behaviour.   Note  that  the  command\nlingers  in the internal history until the next command is entered before it vanishes,\nallowing you to briefly reuse or edit the line.  If you want to make it  vanish  right\naway without entering another command, type a space and press return.\n\nHISTLEXWORDS\nBy  default, shell history that is read in from files is split into words on all white\nspace.  This means that arguments with quoted whitespace are  not  correctly  handled,\nwith  the  consequence  that  references to words in history lines that have been read\nfrom a file may be inaccurate.  When this option is set, words read in from a  history\nfile  are  divided up in a similar fashion to normal shell command line handling.  Al‐\nthough this produces more accurately delimited words, if the size of the history  file\nis large this can be slow.  Trial and error is necessary to decide.\n\nHISTNOFUNCTIONS\nRemove  function definitions from the history list.  Note that the function lingers in\nthe internal history until the next command is entered before  it  vanishes,  allowing\nyou to briefly reuse or edit the definition.\n\nHISTNOSTORE\nRemove  the history (fc -l) command from the history list when invoked.  Note that the\ncommand lingers in the internal history until the next command is  entered  before  it\nvanishes, allowing you to briefly reuse or edit the line.\n\nHISTREDUCEBLANKS\nRemove superfluous blanks from each command line being added to the history list.\n\nHISTSAVEBYCOPY <D>\nWhen  the  history  file is re-written, we normally write out a copy of the file named\n$HISTFILE.new and then rename it over the old one.  However, if this option is  unset,\nwe  instead  truncate the old history file and write out the new version in-place.  If\none of the history-appending options is enabled, this option only has an  effect  when\nthe  enlarged  history  file  needs to be re-written to trim it down to size.  Disable\nthis only if you have special needs, as doing so makes it possible to lose history en‐\ntries if zsh gets interrupted during the save.\n\nWhen  writing out a copy of the history file, zsh preserves the old file's permissions\nand group information, but will refuse to write out a new file if it would change  the\nhistory file's owner.\n\nHISTSAVENODUPS\nWhen  writing out the history file, older commands that duplicate newer ones are omit‐\nted.\n\nHISTVERIFY\nWhenever the user enters a line with history expansion, don't  execute  the  line  di‐\nrectly;  instead,  perform history expansion and reload the line into the editing buf‐\nfer.\n\nINCAPPENDHISTORY\nThis option works like APPENDHISTORY except that new history lines are added  to  the\n$HISTFILE  incrementally  (as soon as they are entered), rather than waiting until the\nshell exits.  The file will still be periodically re-written to trim it when the  num‐\nber  of  lines  grows  20%  beyond  the  value  specified  by  $SAVEHIST (see also the\nHISTSAVEBYCOPY option).\n\nINCAPPENDHISTORYTIME\nThis option is a variant of INCAPPENDHISTORY in which, where possible,  the  history\nentry is written out to the file after the command is finished, so that the time taken\nby the command is recorded correctly in the history file in  EXTENDEDHISTORY  format.\nThis  means  that  the  history entry will not be available immediately from other in‐\nstances of the shell that are using the same history file.\n\nThis option is only useful if INCAPPENDHISTORY and  SHAREHISTORY  are  turned  off.\nThe three options should be considered mutually exclusive.\n\nSHAREHISTORY <K>\n\nThis  option  both  imports  new  commands from the history file, and also causes your\ntyped commands to be appended to the history  file  (the  latter  is  like  specifying\nINCAPPENDHISTORY, which should be turned off if this option is in effect).  The his‐\ntory lines are also output with timestamps ala EXTENDEDHISTORY (which makes it easier\nto find the spot where we left off reading the file after it gets re-written).\n\nBy  default,  history  movement commands visit the imported lines as well as the local\nlines, but you can toggle this on and off with the set-local-history zle binding.   It\nis  also  possible to create a zle widget that will make some commands ignore imported\ncommands, and some include them.\n\nIf you find that you want more control over when commands get imported, you  may  wish\nto  turn  SHAREHISTORY off, INCAPPENDHISTORY or INCAPPENDHISTORYTIME (see above)\non, and then manually import commands whenever you need them using `fc -RI'.\n"
                    },
                    {
                        "name": "Initialisation",
                        "content": "ALLEXPORT (-a, ksh: -a)\nAll parameters subsequently defined are automatically exported.\n\nGLOBALEXPORT <Z>\nIf this option is set, passing the -x flag to the builtins  declare,  float,  integer,\nreadonly  and typeset (but not local) will also set the -g flag;  hence parameters ex‐\nported to the environment will not be made local to  the  enclosing  function,  unless\nthey  were  already  or  the flag +g is given explicitly.  If the option is unset, ex‐\nported parameters will be made local in just the same way as any other parameter.\n\nThis option is set by default for backward compatibility; it is not  recommended  that\nits  behaviour  be  relied upon.  Note that the builtin export always sets both the -x\nand -g flags, and hence its effect extends beyond the scope of the enclosing function;\nthis is the most portable way to achieve this behaviour.\n\nGLOBALRCS (-d) <D>\nIf  this  option  is  unset,  the  startup  files  /etc/zsh/zprofile,  /etc/zsh/zshrc,\n/etc/zsh/zlogin and /etc/zsh/zlogout will not be run.  It can be disabled  and  re-en‐\nabled at any time, including inside local startup files (.zshrc, etc.).\n\nRCS (+f) <D>\nAfter  /etc/zsh/zshenv  is  sourced on startup, source the .zshenv, /etc/zsh/zprofile,\n.zprofile, /etc/zsh/zshrc, .zshrc, /etc/zsh/zlogin, .zlogin, and  .zlogout  files,  as\ndescribed  in  the section `Files'.  If this option is unset, the /etc/zsh/zshenv file\nis still sourced, but any of the others will not be; it can be set at any time to pre‐\nvent the remaining startup files after the currently executing one from being sourced.\n"
                    },
                    {
                        "name": "Input/Output",
                        "content": "ALIASES <D>\nExpand aliases.\n\nCLOBBER (+C, ksh: +C) <D>\nAllows  `>'  redirection  to  truncate existing files.  Otherwise `>!' or `>|' must be\nused to truncate a file.\n\nIf the option is not set, and the option APPENDCREATE is also not set, `>>!' or `>>|'\nmust be used to create a file.  If either option is set, `>>' may be used.\n\nCORRECT (-0)\nTry  to correct the spelling of commands.  Note that, when the HASHLISTALL option is\nnot set or when some directories in the path are not readable, this may falsely report\nspelling errors the first time some commands are used.\n\nThe  shell  variable  CORRECTIGNORE  may be set to a pattern to match words that will\nnever be offered as corrections.\n\nCORRECTALL (-O)\nTry to correct the spelling of all arguments in a line.\n\nThe shell variable CORRECTIGNOREFILE may be set to a pattern  to  match  file  names\nthat will never be offered as corrections.\n\nDVORAK Use the Dvorak keyboard instead of the standard qwerty keyboard as a basis for examin‐\ning spelling mistakes for the CORRECT and CORRECTALL options and the spell-word  edi‐\ntor command.\n\nFLOWCONTROL <D>\nIf  this  option  is unset, output flow control via start/stop characters (usually as‐\nsigned to ^S/^Q) is disabled in the shell's editor.\n\nIGNOREEOF (-7)\nDo not exit on end-of-file.  Require the use of exit or logout instead.  However,  ten\nconsecutive  EOFs  will  cause the shell to exit anyway, to avoid the shell hanging if\nits tty goes away.\n\nAlso, if this option is set and the Zsh Line Editor is used,  widgets  implemented  by\nshell  functions  can be bound to EOF (normally Control-D) without printing the normal\nwarning message.  This works only for normal widgets, not for completion widgets.\n\nINTERACTIVECOMMENTS (-k) <K> <S>\nAllow comments even in interactive shells.\n\nHASHCMDS <D>\nNote the location of each command the first time it is executed.   Subsequent  invoca‐\ntions  of  the  same  command will use the saved location, avoiding a path search.  If\nthis option is unset, no path hashing is done at all.  However, when CORRECT  is  set,\ncommands  whose names do not appear in the functions or aliases hash tables are hashed\nin order to avoid reporting them as spelling errors.\n\nHASHDIRS <D>\nWhenever a command name is hashed, hash the directory containing it, as  well  as  all\ndirectories  that  occur  earlier in the path.  Has no effect if neither HASHCMDS nor\nCORRECT is set.\n\nHASHEXECUTABLESONLY\nWhen hashing commands because of HASHCMDS, check that the file to be hashed is  actu‐\nally  an  executable.  This option is unset by default as if the path contains a large\nnumber of commands, or consists of many remote files, the additional tests can take  a\nlong time.  Trial and error is needed to show if this option is beneficial.\n\nMAILWARNING (-U)\nPrint a warning message if a mail file has been accessed since the shell last checked.\n\nPATHDIRS (-Q)\nPerform  a  path search even on command names with slashes in them.  Thus if `/usr/lo‐‐\ncal/bin' is in the user's path, and he or she types `X11/xinit', the command `/usr/lo‐‐\ncal/bin/X11/xinit'  will be executed (assuming it exists).  Commands explicitly begin‐\nning with `/', `./' or `../' are not subject to the path search.  This also applies to\nthe `.' and source builtins.\n\nNote  that subdirectories of the current directory are always searched for executables\nspecified in this form.  This takes place before any search indicated by this  option,\nand  regardless  of  whether `.' or the current directory appear in the command search\npath.\n\nPATHSCRIPT <K> <S>\nIf this option is not set, a script passed as the first  non-option  argument  to  the\nshell  must  contain  the  name  of  the file to open.  If this option is set, and the\nscript does not specify a directory path, the script is looked for first in  the  cur‐\nrent directory, then in the command path.  See the section INVOCATION in zsh(1).\n\nPRINTEIGHTBIT\nPrint  eight  bit  characters  literally in completion lists, etc.  This option is not\nnecessary if your system correctly returns the printability of  eight  bit  characters\n(see ctype(3)).\n\nPRINTEXITVALUE (-1)\nPrint the exit value of programs with non-zero exit status.  This is only available at\nthe command line in interactive shells.\n\nRCQUOTES\nAllow the character sequence `''' to signify  a  single  quote  within  singly  quoted\nstrings.   Note this does not apply in quoted strings using the format $'...', where a\nbackslashed single quote can be used.\n\nRMSTARSILENT (-H) <K> <S>\nDo not query the user before executing `rm *' or `rm path/*'.\n\nRMSTARWAIT\nIf querying the user before executing `rm *' or `rm path/*', first  wait  ten  seconds\nand  ignore  anything  typed in that time.  This avoids the problem of reflexively an‐\nswering `yes' to the query when one didn't really mean it.  The wait and query can al‐\nways be avoided by expanding the `*' in ZLE (with tab).\n\nSHORTLOOPS <C> <Z>\nAllow the short forms of for, repeat, select, if, and function constructs.\n\nSUNKEYBOARDHACK (-L)\nIf  a  line  ends  with  a backquote, and there are an odd number of backquotes on the\nline, ignore the trailing backquote.  This is useful on some keyboards where  the  re‐\nturn  key  is too small, and the backquote key lies annoyingly close to it.  As an al‐\nternative the variable KEYBOARDHACK lets you choose the character to be removed.\n"
                    },
                    {
                        "name": "Job Control",
                        "content": "AUTOCONTINUE\nWith this option set, stopped jobs that are removed from the job table with the disown\nbuiltin command are automatically sent a CONT signal to make them running.\n\nAUTORESUME (-W)\nTreat  single word simple commands without redirection as candidates for resumption of\nan existing job.\n\nBGNICE (-6) <C> <Z>\nRun all background jobs at a lower priority.  This option is set by default.\n\nCHECKJOBS <Z>\nReport the status of background and suspended jobs before exiting  a  shell  with  job\ncontrol;  a second attempt to exit the shell will succeed.  NOCHECKJOBS is best used\nonly in combination with NOHUP, else such jobs will be killed automatically.\n\nThe check is omitted if the commands run from the previous  command  line  included  a\n`jobs'  command,  since  it  is assumed the user is aware that there are background or\nsuspended jobs.  A `jobs' command run from one of the hook functions  defined  in  the\nsection SPECIAL FUNCTIONS in zshmisc(1) is not counted for this purpose.\n\nCHECKRUNNINGJOBS <Z>\nCheck  for  both running and suspended jobs when CHECKJOBS is enabled.  When this op‐\ntion is disabled, zsh checks only for suspended jobs, which matches the default behav‐\nior of bash.\n\nThis option has no effect unless CHECKJOBS is set.\n\nHUP <Z>\nSend the HUP signal to running jobs when the shell exits.\n\nLONGLISTJOBS (-R)\nPrint job notifications in the long format by default.\n\nMONITOR (-m, ksh: -m)\nAllow job control.  Set by default in interactive shells.\n\nNOTIFY (-5, ksh: -b) <Z>\nReport  the  status of background jobs immediately, rather than waiting until just be‐\nfore printing a prompt.\n\nPOSIXJOBS <K> <S>\nThis option makes job control more compliant with the POSIX standard.\n\nWhen the option is not set, the MONITOR option is unset on entry to subshells, so that\njob  control  is no longer active.  When the option is set, the MONITOR option and job\ncontrol remain active in the subshell, but note that the subshell  has  no  access  to\njobs in the parent shell.\n\nWhen the option is not set, jobs put in the background or foreground with bg or fg are\ndisplayed with the same information that would be reported by jobs.  When  the  option\nis  set, only the text is printed.  The output from jobs itself is not affected by the\noption.\n\nWhen the option is not set, job information from the parent shell is saved for  output\nwithin  a subshell (for example, within a pipeline).  When the option is set, the out‐\nput of jobs is empty until a job is started within the subshell.\n\nIn previous versions of the shell, it was necessary to enable POSIXJOBS in order  for\nthe  builtin command wait to return the status of background jobs that had already ex‐\nited.  This is no longer the case.\n"
                    },
                    {
                        "name": "Prompting",
                        "content": "PROMPTBANG <K>\nIf set, `!' is treated specially in prompt expansion.  See  EXPANSION  OF  PROMPT  SE‐\nQUENCES in zshmisc(1).\n\nPROMPTCR (+V) <D>\nPrint  a carriage return just before printing a prompt in the line editor.  This is on\nby default as multi-line editing is only possible if the editor knows where the  start\nof the line appears.\n\nPROMPTSP <D>\nAttempt  to preserve a partial line (i.e. a line that did not end with a newline) that\nwould otherwise be covered up by the command prompt due to the PROMPTCR option.  This\nworks by outputting some cursor-control characters, including a series of spaces, that\nshould make the terminal wrap to the next line when a partial line  is  present  (note\nthat  this  is  only successful if your terminal has automatic margins, which is typi‐\ncal).\n\nWhen a partial line is preserved, by default you will see an inverse+bold character at\nthe  end of the partial line:  a `%' for a normal user or a `#' for root.  If set, the\nshell parameter PROMPTEOLMARK can be used to customize how the end of partial  lines\nare shown.\n\nNOTE:  if  the  PROMPTCR option is not set, enabling this option will have no effect.\nThis option is on by default.\n\nPROMPTPERCENT <C> <Z>\nIf set, `%' is treated specially in prompt expansion.  See  EXPANSION  OF  PROMPT  SE‐\nQUENCES in zshmisc(1).\n\nPROMPTSUBST <K> <S>\nIf  set,  parameter  expansion, command substitution and arithmetic expansion are per‐\nformed in prompts.  Substitutions within prompts do not affect the command status.\n\nTRANSIENTRPROMPT\nRemove any right prompt from display when accepting a command line.  This may be  use‐\nful with terminals with other cut/paste methods.\n"
                    },
                    {
                        "name": "Scripts and Functions",
                        "content": "ALIASFUNCDEF <S>\nBy  default, zsh does not allow the definition of functions using the `name ()' syntax\nif name was expanded as an alias: this causes an error.  This is usually  the  desired\nbehaviour,  as  otherwise the combination of an alias and a function based on the same\ndefinition can easily cause problems.\n\nWhen this option is set, aliases can be used for defining functions.\n\nFor example, consider the following definitions as they might occur in a startup file.\n\nalias foo=bar\nfoo() {\nprint This probably does not do what you expect.\n}\n\nHere, foo is expanded as an alias to bar before the () is encountered, so the function\ndefined would be named bar.  By default this is instead an error in native mode.  Note\nthat quoting any part of the function name, or using the keyword function, avoids  the\nproblem, so is recommended when the function name can also be an alias.\n\nCBASES\nOutput hexadecimal numbers in the standard C format, for example `0xFF' instead of the\nusual `16#FF'.  If the option OCTALZEROES is also set (it is not by  default),  octal\nnumbers  will  be treated similarly and hence appear as `077' instead of `8#77'.  This\noption has no effect on the choice of the output base, nor  on  the  output  of  bases\nother than hexadecimal and octal.  Note that these formats will be understood on input\nirrespective of the setting of CBASES.\n\nCPRECEDENCES\nThis alters the precedence of arithmetic operators to be more like C  and  other  pro‐\ngramming  languages;  the  section ARITHMETIC EVALUATION in zshmisc(1) has an explicit\nlist.\n\nDEBUGBEFORECMD <D>\nRun the DEBUG trap before each command; otherwise it is run after each command.   Set‐\nting  this  option mimics the behaviour of ksh 93; with the option unset the behaviour\nis that of ksh 88.\n\nERREXIT (-e, ksh: -e)\nIf a command has a non-zero exit status, execute the ZERR  trap,  if  set,  and  exit.\nThis is disabled while running initialization scripts.\n\nThe behaviour is also disabled inside DEBUG traps.  In this case the option is handled\nspecially: it is unset on entry to the trap.  If the option DEBUGBEFORECMD  is  set,\nas  it  is by default, and the option ERREXIT is found to have been set on exit, then\nthe command for which the DEBUG trap is being executed is skipped.  The option is  re‐\nstored after the trap exits.\n\nNon-zero  status  in a command list containing && or || is ignored for commands not at\nthe end of the list.  Hence\n\nfalse && true\n\ndoes not trigger exit.\n\nExiting due to ERREXIT has certain interactions with asynchronous jobs noted  in  the\nsection JOBS in zshmisc(1).\n\nERRRETURN\nIf  a  command has a non-zero exit status, return immediately from the enclosing func‐\ntion.  The logic is similar to that for  ERREXIT,  except  that  an  implicit  return\nstatement  is executed instead of an exit.  This will trigger an exit at the outermost\nlevel of a non-interactive script.\n\nNormally this option inherits the behaviour of ERREXIT that  code  followed  by  `&&'\n`||' does not trigger a return.  Hence in the following:\n\nsummit || true\n\nno return is forced as the combined effect always has a zero return status.\n\nNote.  however,  that if summit in the above example is itself a function, code inside\nit is considered separately: it may force a return from summit  (assuming  the  option\nremains  set  within  summit),  but not from the enclosing context.  This behaviour is\ndifferent from ERREXIT which is unaffected by function scope.\n\nEVALLINENO <Z>\nIf set, line numbers of expressions evaluated using the builtin eval are tracked sepa‐\nrately  of  the  enclosing environment.  This applies both to the parameter LINENO and\nthe line number output by the prompt escape %i.  If the option is set, the prompt  es‐\ncape  %N  will output the string `(eval)' instead of the script or function name as an\nindication.   (The two prompt escapes are typically used in the parameter  PS4  to  be\noutput  when  the  option XTRACE is set.)  If EVALLINENO is unset, the line number of\nthe surrounding script or function is retained during the evaluation.\n\nEXEC (+n, ksh: +n) <D>\nDo execute commands.  Without this option, commands are read and  checked  for  syntax\nerrors,  but  not executed.  This option cannot be turned off in an interactive shell,\nexcept when `-n' is supplied to the shell at startup.\n\nFUNCTIONARGZERO <C> <Z>\nWhen executing a shell function or sourcing a script, set $0 temporarily to  the  name\nof the function/script.  Note that toggling FUNCTIONARGZERO from on to off (or off to\non) does not change the current value of $0.  Only the state upon entry to  the  func‐\ntion or script has an effect.  Compare POSIXARGZERO.\n\nLOCALLOOPS\nWhen  this  option is not set, the effect of break and continue commands may propagate\noutside function scope, affecting loops in calling functions.  When the option is  set\nin  a calling function, a break or a continue that is not caught within a called func‐\ntion (regardless of the setting of the option within that function) produces a warning\nand the effect is cancelled.\n\nLOCALOPTIONS <K>\nIf  this option is set at the point of return from a shell function, most options (in‐\ncluding this one) which were in force upon entry to the function are restored; options\nthat are not restored are PRIVILEGED and RESTRICTED.  Otherwise, only this option, and\nthe LOCALLOOPS, XTRACE and PRINTEXITVALUE options are restored.  Hence if  this  is\nexplicitly unset by a shell function the other options in force at the point of return\nwill remain so.  A shell function can also guarantee itself a known  shell  configura‐\ntion with a formulation like `emulate -L zsh'; the -L activates LOCALOPTIONS.\n\nLOCALPATTERNS\nIf  this option is set at the point of return from a shell function, the state of pat‐\ntern disables, as set with the builtin command `disable -p', is restored  to  what  it\nwas when the function was entered.  The behaviour of this option is similar to the ef‐\nfect of LOCALOPTIONS on options; hence `emulate -L sh' (or indeed any other emulation\nwith the -L option) activates LOCALPATTERNS.\n\nLOCALTRAPS <K>\nIf  this  option is set when a signal trap is set inside a function, then the previous\nstatus of the trap for that signal will be restored when  the  function  exits.   Note\nthat  this  option must be set prior to altering the trap behaviour in a function; un‐\nlike LOCALOPTIONS, the value on exit from the function is  irrelevant.   However,  it\ndoes  not need to be set before any global trap for that to be correctly restored by a\nfunction.  For example,\n\nunsetopt localtraps\ntrap - INT\nfn() { setopt localtraps; trap '' INT; sleep 3; }\n\nwill restore normal handling of SIGINT after the function exits.\n\nMULTIFUNCDEF <Z>\nAllow definitions of multiple functions at once in the form `fn1 fn2...()'; if the op‐\ntion is not set, this causes a parse error.  Definition of multiple functions with the\nfunction keyword is always allowed.  Multiple function definitions are not often  used\nand can cause obscure errors.\n\nMULTIOS <Z>\nPerform  implicit  tees or cats when multiple redirections are attempted (see the sec‐\ntion `Redirection').\n\nOCTALZEROES <S>\nInterpret any integer constant beginning with a 0 as octal, per IEEE  Std  1003.2-1992\n(ISO  9945-2:1993).  This is not enabled by default as it causes problems with parsing\nof, for example, date and time strings with leading zeroes.\n\nSequences of digits indicating a numeric base such as the `08'  component  in  `08#77'\nare always interpreted as decimal, regardless of leading zeroes.\n\nPIPEFAIL\nBy  default,  when a pipeline exits the exit status recorded by the shell and returned\nby the shell variable $? reflects that of the rightmost element  of  a  pipeline.   If\nthis  option is set, the exit status instead reflects the status of the rightmost ele‐\nment of the pipeline that was non-zero, or zero if all elements exited with zero  sta‐\ntus.\n\nSOURCETRACE\nIf  set,  zsh  will print an informational message announcing the name of each file it\nloads.  The format of the output is similar to that for the XTRACE  option,  with  the\nmessage <sourcetrace>.  A file may be loaded by the shell itself when it starts up and\nshuts down (Startup/Shutdown Files) or by the use of the `source'  and  `dot'  builtin\ncommands.\n\nTYPESETSILENT\nIf  this  is  unset, executing any of the `typeset' family of commands with no options\nand a list of parameters that have no values to be assigned  but  already  exist  will\ndisplay  the  value  of  the parameter.  If the option is set, they will only be shown\nwhen parameters are selected with the `-m'  option.   The  option  `-p'  is  available\nwhether or not the option is set.\n\nVERBOSE (-v, ksh: -v)\nPrint shell input lines as they are read.\n\nXTRACE (-x, ksh: -x)\nPrint  commands  and  their arguments as they are executed.  The output is preceded by\nthe value of $PS4, formatted as described in the section EXPANSION OF PROMPT SEQUENCES\nin zshmisc(1).\n"
                    },
                    {
                        "name": "Shell Emulation",
                        "content": "APPENDCREATE <K> <S>\nThis option only applies when NOCLOBBER (-C) is in effect.\n\nIf  this  option  is not set, the shell will report an error when a append redirection\n(>>) is used on a file that does not already exists (the traditional zsh behaviour  of\nNOCLOBBER).  If the option is set, no error is reported (POSIX behaviour).\n\nBASHREMATCH\nWhen set, matches performed with the =~ operator will set the BASHREMATCH array vari‐\nable, instead of the default MATCH and match variables.   The  first  element  of  the\nBASHREMATCH  array  will contain the entire matched text and subsequent elements will\ncontain extracted substrings.  This option makes more sense when  KSHARRAYS  is  also\nset,  so  that the entire matched portion is stored at index 0 and the first substring\nis at index 1.  Without this option, the MATCH variable contains  the  entire  matched\ntext and the match array variable contains substrings.\n\nBSDECHO <S>\nMake  the  echo  builtin compatible with the BSD echo(1) command.  This disables back‐\nslashed escape sequences in echo strings unless the -e option is specified.\n\nCONTINUEONERROR\nIf a fatal error is encountered (see the section ERRORS in zshmisc(1)), and  the  code\nis  running  in a script, the shell will resume execution at the next statement in the\nscript at the top level, in other words outside all functions or shell constructs such\nas  loops  and conditions.  This mimics the behaviour of interactive shells, where the\nshell returns to the line editor to read a new command; it was the normal behaviour in\nversions of zsh before 5.0.1.\n\nCSHJUNKIEHISTORY <C>\nA  history reference without an event specifier will always refer to the previous com‐\nmand.  Without this option, such a history reference refers to the same event  as  the\nprevious  history  reference  on  the current command line, defaulting to the previous\ncommand.\n\nCSHJUNKIELOOPS <C>\nAllow loop bodies to take the form `list; end' instead of `do list; done'.\n\nCSHJUNKIEQUOTES <C>\nChanges the rules for single- and double-quoted text to match that of csh.  These  re‐\nquire that embedded newlines be preceded by a backslash; unescaped newlines will cause\nan error message.  In double-quoted strings, it is made impossible to escape `$',  ``'\nor  `\"' (and `\\' itself no longer needs escaping).  Command substitutions are only ex‐\npanded once, and cannot be nested.\n\nCSHNULLCMD <C>\nDo not use the values of NULLCMD and READNULLCMD when  running  redirections  with  no\ncommand.  This make such redirections fail (see the section `Redirection').\n\nKSHARRAYS <K> <S>\nEmulate  ksh array handling as closely as possible.  If this option is set, array ele‐\nments are numbered from zero, an array parameter without subscript refers to the first\nelement  instead  of  the  whole array, and braces are required to delimit a subscript\n(`${path[2]}' rather than just `$path[2]') or to  apply  modifiers  to  any  parameter\n(`${PWD:h}' rather than `$PWD:h').\n\nKSHAUTOLOAD <K> <S>\nEmulate  ksh function autoloading.  This means that when a function is autoloaded, the\ncorresponding file is merely executed, and must define the function itself.   (By  de‐\nfault,  the function is defined to the contents of the file.  However, the most common\nksh-style case - of the file containing only a simple definition of the function -  is\nalways handled in the ksh-compatible manner.)\n\nKSHOPTIONPRINT <K>\nAlters  the way options settings are printed: instead of separate lists of set and un‐\nset options, all options are shown, marked `on' if they are in the non-default  state,\n`off' otherwise.\n\nKSHTYPESET\nThis  option is now obsolete: a better appropximation to the behaviour of other shells\nis obtained with the reserved word interface to declare, export, float,  integer,  lo‐‐\ncal,  readonly  and  typeset.   Note that the option is only applied when the reserved\nword interface is not in use.\n\nAlters the way arguments to the typeset family of commands, including declare, export,\nfloat, integer, local and readonly, are processed.  Without this option, zsh will per‐\nform normal word splitting after command and parameter expansion in  arguments  of  an\nassignment; with it, word splitting does not take place in those cases.\n\nKSHZEROSUBSCRIPT\nTreat  use  of a subscript of value zero in array or string expressions as a reference\nto the first element, i.e. the element that usually has the subscript 1.   Ignored  if\nKSHARRAYS is also set.\n\nIf  neither  this  option nor KSHARRAYS is set, accesses to an element of an array or\nstring with subscript zero return an empty element or string, while  attempts  to  set\nelement  zero of an array or string are treated as an error.  However, attempts to set\nan otherwise valid subscript range that includes zero will succeed.  For  example,  if\nKSHZEROSUBSCRIPT is not set,\n\narray[0]=(element)\n\nis an error, while\n\narray[0,1]=(element)\n\nis not and will replace the first element of the array.\n\nThis  option  is  for compatibility with older versions of the shell and is not recom‐\nmended in new code.\n\nPOSIXALIASES <K> <S>\nWhen this option is set, reserved words are not candidates for alias expansion:  it is\nstill  possible  to  declare  any of them as an alias, but the alias will never be ex‐\npanded.  Reserved words are described in the section RESERVED WORDS in zshmisc(1).\n\nAlias expansion takes place while text is being read; hence when this option is set it\ndoes not take effect until the end of any function or other piece of shell code parsed\nas one unit.  Note this may cause differences from other shells even when  the  option\nis  in  effect.   For  example,  when running a command with `zsh -c', or even `zsh -o\nposixaliases -c', the entire command argument is parsed as one unit,  so  aliases  de‐\nfined  within  the argument are not available even in later lines.  If in doubt, avoid\nuse of aliases in non-interactive code.\n\nPOSIXARGZERO\nThis option may be used to temporarily disable FUNCTIONARGZERO  and  thereby  restore\nthe value of $0 to the name used to invoke the shell (or as set by the -c command line\noption).  For compatibility with  previous  versions  of  the  shell,  emulations  use\nNOFUNCTIONARGZERO  instead  of POSIXARGZERO, which may result in unexpected scoping\nof $0 if the emulation mode is changed inside a function or script.   To  avoid  this,\nexplicitly enable POSIXARGZERO in the emulate command:\n\nemulate sh -o POSIXARGZERO\n\nNote  that  NOPOSIXARGZERO has no effect unless FUNCTIONARGZERO was already enabled\nupon entry to the function or script.\n\nPOSIXBUILTINS <K> <S>\nWhen this option is set the command builtin can be used to execute shell builtin  com‐\nmands.   Parameter  assignments  specified before shell functions and special builtins\nare kept after the command completes unless the special builtin is prefixed  with  the\ncommand builtin.  Special builtins are ., :, break, continue, declare, eval, exit, ex‐‐\nport, integer, local, readonly, return, set, shift, source, times, trap and unset.\n\nIn addition, various error conditions associated with the above builtins or exec cause\na  non-interactive  shell  to exit and an interactive shell to return to its top-level\nprocessing.\n\nFurthermore, functions and shell builtins are not executed after an exec  prefix;  the\ncommand to be executed must be an external command found in the path.\n\nFurthermore, the getopts builtin behaves in a POSIX-compatible fashion in that the as‐\nsociated variable OPTIND is not made local to functions.\n\nMoreover, the warning and special exit code from [[ -o nonexistentoption ]] are sup‐\npressed.\n\nPOSIXIDENTIFIERS <K> <S>\nWhen this option is set, only the ASCII characters a to z, A to Z, 0 to 9 and  may be\nused in identifiers (names of shell parameters and modules).\n\nIn addition, setting this option limits the effect of parameter substitution  with  no\nbraces, so that the expression $# is treated as the parameter $# even if followed by a\nvalid parameter name.  When it is unset, zsh allows expressions of the form $#name  to\nrefer  to  the length of $name, even for special variables, for example in expressions\nsuch as $#- and $#*.\n\nAnother difference is that with the option set assignment  to  an  unset  variable  in\narithmetic context causes the variable to be created as a scalar rather than a numeric\ntype.  So after `unset t; (( t = 3 ))'. without POSIXIDENTIFIERS set  t  has  integer\ntype, while with it set it has scalar type.\n\nWhen  the  option is unset and multibyte character support is enabled (i.e. it is com‐\npiled in and the option MULTIBYTE is set), then additionally any alphanumeric  charac‐\nters  in  the  local  character set may be used in identifiers.  Note that scripts and\nfunctions written with this feature are not portable, and also that both options  must\nbe  set  before the script or function is parsed; setting them during execution is not\nsufficient as the syntax variable=value has already been parsed as  a  command  rather\nthan an assignment.\n\nIf  multibyte character support is not compiled into the shell this option is ignored;\nall octets with the top bit set may be used in identifiers.  This is non-standard  but\nis the traditional zsh behaviour.\n\nPOSIXSTRINGS <K> <S>\nThis  option  affects processing of quoted strings.  Currently it only affects the be‐\nhaviour of null characters, i.e. character 0 in the portable character set correspond‐\ning to US ASCII.\n\nWhen  this  option  is  not  set,  null characters embedded within strings of the form\n$'...' are treated as ordinary characters. The entire string is maintained within  the\nshell  and  output to files where necessary, although owing to restrictions of the li‐\nbrary interface the string is truncated at the null character in file names,  environ‐\nment variables, or in arguments to external programs.\n\nWhen  this  option  is  set, the $'...' expression is truncated at the null character.\nNote that remaining parts of the same string beyond the termination of the quotes  are\nnot truncated.\n\nFor example, the command line argument a$'b\\0c'd is treated with the option off as the\ncharacters a, b, null, c, d, and with the option on as the characters a, b, d.\n\nPOSIXTRAPS <K> <S>\nWhen this option is set, the usual zsh behaviour of executing traps for EXIT  on  exit\nfrom  shell functions is suppressed.  In that case, manipulating EXIT traps always al‐\nters the global trap for exiting the shell; the LOCALTRAPS option is ignored for  the\nEXIT trap.  Furthermore, a return statement executed in a trap with no argument passes\nback from the function the value from the surrounding context, not from code  executed\nwithin the trap.\n\nSHFILEEXPANSION <K> <S>\nPerform  filename  expansion  (e.g.,  ~ expansion) before parameter expansion, command\nsubstitution, arithmetic expansion and brace expansion.  If this option is  unset,  it\nis  performed  after brace expansion, so things like `~$USERNAME' and `~{pfalstad,rc}'\nwill work.\n\nSHNULLCMD <K> <S>\nDo not use the values of NULLCMD and READNULLCMD when doing redirections, use `:'  in‐\nstead (see the section `Redirection').\n\nSHOPTIONLETTERS <K> <S>\nIf  this  option  is set the shell tries to interpret single letter options (which are\nused with set and setopt) like ksh does.  This also affects the value of the - special\nparameter.\n\nSHWORDSPLIT (-y) <K> <S>\nCauses  field  splitting  to be performed on unquoted parameter expansions.  Note that\nthis option has nothing to do with word splitting.  (See zshexpn(1).)\n\nTRAPSASYNC\nWhile waiting for a program to exit, handle signals and run traps immediately.  Other‐\nwise  the trap is run after a child process has exited.  Note this does not affect the\npoint at which traps are run for any case other than when the shell is waiting  for  a\nchild process.\n"
                    },
                    {
                        "name": "Shell State",
                        "content": "INTERACTIVE (-i, ksh: -i)\nThis  is an interactive shell.  This option is set upon initialisation if the standard\ninput is a tty and commands are being read from standard input.  (See  the  discussion\nof  SHINSTDIN.)   This heuristic may be overridden by specifying a state for this op‐\ntion on the command line.  The value of this option can only be changed via flags sup‐\nplied at invocation of the shell.  It cannot be changed once zsh is running.\n\nLOGIN (-l, ksh: -l)\nThis  is a login shell.  If this option is not explicitly set, the shell becomes a lo‐\ngin shell if the first character of the argv[0] passed to the shell is a `-'.\n\nPRIVILEGED (-p, ksh: -p)\nTurn on privileged mode. Typically this is used when script is to be run with elevated\nprivileges.  This should be done as follows directly with the -p option to zsh so that\nit takes effect during startup.\n\n#!/bin/zsh -p\n\nThe option is enabled automatically on startup if the effective user (group) ID is not\nequal to the real user (group) ID. In this case, turning the option off causes the ef‐\nfective user and group IDs to be set to the real user and group IDs. Be aware that  if\nthat  fails  the shell may be running with different IDs than was intended so a script\nshould check for failure and act accordingly, for example:\n\nunsetopt privileged || exit\n\nThe PRIVILEGED option disables sourcing user startup files.  If zsh is invoked as `sh'\nor `ksh' with this option set, /etc/suidprofile is sourced (after /etc/profile on in‐\nteractive shells). Sourcing ~/.profile is disabled and the contents of the  ENV  vari‐\nable is ignored. This option cannot be changed using the -m option of setopt and unse‐‐\ntopt, and changing it inside a function always changes it globally regardless  of  the\nLOCALOPTIONS option.\n\nRESTRICTED (-r)\nEnables restricted mode.  This option cannot be changed using unsetopt, and setting it\ninside a function always changes it globally regardless of the  LOCALOPTIONS  option.\nSee the section `Restricted Shell'.\n\nSHINSTDIN (-s, ksh: -s)\nCommands  are being read from the standard input.  Commands are read from standard in‐\nput if no command is specified with -c and no  file  of  commands  is  specified.   If\nSHINSTDIN  is  set  explicitly on the command line, any argument that would otherwise\nhave been taken as a file to run will instead be treated as a normal positional param‐\neter.   Note that setting or unsetting this option on the command line does not neces‐\nsarily affect the state the option will have while the shell  is  running  -  that  is\npurely  an  indicator of whether or not commands are actually being read from standard\ninput.  The value of this option can only be changed via flags supplied at  invocation\nof the shell.  It cannot be changed once zsh is running.\n\nSINGLECOMMAND (-t, ksh: -t)\nIf  the shell is reading from standard input, it exits after a single command has been\nexecuted.  This also makes the shell non-interactive, unless the INTERACTIVE option is\nexplicitly  set on the command line.  The value of this option can only be changed via\nflags supplied at invocation of the shell.  It cannot be changed once zsh is running.\n"
                    },
                    {
                        "name": "Zle",
                        "content": "BEEP (+B) <D>\nBeep on error in ZLE.\n\nCOMBININGCHARS\nAssume that the terminal displays combining characters correctly.  Specifically, if  a\nbase  alphanumeric character is followed by one or more zero-width punctuation charac‐\nters, assume that the zero-width characters will be displayed as modifications to  the\nbase  character within the same width.  Not all terminals handle this.  If this option\nis not set, zero-width characters are displayed separately with special mark-up.\n\nIf this option is set, the pattern test [[:WORD:]] matches  a  zero-width  punctuation\ncharacter on the assumption that it will be used as part of a word in combination with\na word character.  Otherwise the base shell does not handle combining characters  spe‐\ncially.\n\nEMACS  If  ZLE  is  loaded, turning on this option has the equivalent effect of `bindkey -e'.\nIn addition, the VI option is unset.  Turning it off has no effect.  The  option  set‐\nting  is  not  guaranteed  to reflect the current keymap.  This option is provided for\ncompatibility; bindkey is the recommended interface.\n\nOVERSTRIKE\nStart up the line editor in overstrike mode.\n\nSINGLELINEZLE (-M) <K>\nUse single-line command line editing instead of multi-line.\n\nNote that although this is on by default in ksh emulation it only provides superficial\ncompatibility  with  the ksh line editor and reduces the effectiveness of the zsh line\neditor.  As it has no effect on shell syntax, many users may wish to disable this  op‐\ntion when using ksh emulation interactively.\n\nVI     If  ZLE  is  loaded, turning on this option has the equivalent effect of `bindkey -v'.\nIn addition, the EMACS option is unset.  Turning it off has  no  effect.   The  option\nsetting  is not guaranteed to reflect the current keymap.  This option is provided for\ncompatibility; bindkey is the recommended interface.\n\nZLE (-Z)\nUse the zsh line editor.  Set by default in interactive shells connected to  a  termi‐\nnal.\n"
                    }
                ]
            },
            "OPTION ALIASES": {
                "content": "Some  options  have  alternative  names.  These aliases are never used for output, but can be\nused just like normal option names when specifying options to the shell.\n\nBRACEEXPAND\nNOIGNOREBRACES (ksh and bash compatibility)\n\nDOTGLOB\nGLOBDOTS (bash compatibility)\n\nHASHALL\nHASHCMDS (bash compatibility)\n\nHISTAPPEND\nAPPENDHISTORY (bash compatibility)\n\nHISTEXPAND\nBANGHIST (bash compatibility)\n\nLOG    NOHISTNOFUNCTIONS (ksh compatibility)\n\nMAILWARN\nMAILWARNING (bash compatibility)\n\nONECMD\nSINGLECOMMAND (bash compatibility)\n\nPHYSICAL\nCHASELINKS (ksh and bash compatibility)\n\nPROMPTVARS\nPROMPTSUBST (bash compatibility)\n\nSTDIN  SHINSTDIN (ksh compatibility)\n\nTRACKALL\nHASHCMDS (ksh compatibility)\n",
                "subsections": []
            },
            "SINGLE LETTER OPTIONS": {
                "content": "",
                "subsections": [
                    {
                        "name": "Default set",
                        "content": ""
                    },
                    {
                        "name": "-0",
                        "content": "",
                        "flag": "-0"
                    },
                    {
                        "name": "-1",
                        "content": "",
                        "flag": "-1"
                    },
                    {
                        "name": "-2",
                        "content": "",
                        "flag": "-2"
                    },
                    {
                        "name": "-3",
                        "content": "",
                        "flag": "-3"
                    },
                    {
                        "name": "-4",
                        "content": "",
                        "flag": "-4"
                    },
                    {
                        "name": "-5",
                        "content": "",
                        "flag": "-5"
                    },
                    {
                        "name": "-6",
                        "content": "",
                        "flag": "-6"
                    },
                    {
                        "name": "-7",
                        "content": "",
                        "flag": "-7"
                    },
                    {
                        "name": "-8",
                        "content": "",
                        "flag": "-8"
                    },
                    {
                        "name": "-9",
                        "content": "",
                        "flag": "-9"
                    },
                    {
                        "name": "-B",
                        "content": "",
                        "flag": "-B"
                    },
                    {
                        "name": "-C",
                        "content": "",
                        "flag": "-C"
                    },
                    {
                        "name": "-D",
                        "content": "",
                        "flag": "-D"
                    },
                    {
                        "name": "-E",
                        "content": "",
                        "flag": "-E"
                    },
                    {
                        "name": "-F",
                        "content": "",
                        "flag": "-F"
                    },
                    {
                        "name": "-G",
                        "content": "",
                        "flag": "-G"
                    },
                    {
                        "name": "-H",
                        "content": "",
                        "flag": "-H"
                    },
                    {
                        "name": "-I",
                        "content": "",
                        "flag": "-I"
                    },
                    {
                        "name": "-J",
                        "content": "",
                        "flag": "-J"
                    },
                    {
                        "name": "-K",
                        "content": "",
                        "flag": "-K"
                    },
                    {
                        "name": "-L",
                        "content": "",
                        "flag": "-L"
                    },
                    {
                        "name": "-M",
                        "content": "",
                        "flag": "-M"
                    },
                    {
                        "name": "-N",
                        "content": "",
                        "flag": "-N"
                    },
                    {
                        "name": "-O",
                        "content": "",
                        "flag": "-O"
                    },
                    {
                        "name": "-P",
                        "content": "",
                        "flag": "-P"
                    },
                    {
                        "name": "-Q",
                        "content": "",
                        "flag": "-Q"
                    },
                    {
                        "name": "-R",
                        "content": "",
                        "flag": "-R"
                    },
                    {
                        "name": "-S",
                        "content": "",
                        "flag": "-S"
                    },
                    {
                        "name": "-T",
                        "content": "",
                        "flag": "-T"
                    },
                    {
                        "name": "-U",
                        "content": "",
                        "flag": "-U"
                    },
                    {
                        "name": "-V",
                        "content": "",
                        "flag": "-V"
                    },
                    {
                        "name": "-W",
                        "content": "",
                        "flag": "-W"
                    },
                    {
                        "name": "-X",
                        "content": "",
                        "flag": "-X"
                    },
                    {
                        "name": "-Y",
                        "content": "",
                        "flag": "-Y"
                    },
                    {
                        "name": "-Z",
                        "content": "",
                        "flag": "-Z"
                    },
                    {
                        "name": "-a",
                        "content": "",
                        "flag": "-a"
                    },
                    {
                        "name": "-e",
                        "content": "",
                        "flag": "-e"
                    },
                    {
                        "name": "-f",
                        "content": "",
                        "flag": "-f"
                    },
                    {
                        "name": "-g",
                        "content": "",
                        "flag": "-g"
                    },
                    {
                        "name": "-h",
                        "content": "",
                        "flag": "-h"
                    },
                    {
                        "name": "-i",
                        "content": "",
                        "flag": "-i"
                    },
                    {
                        "name": "-k",
                        "content": "",
                        "flag": "-k"
                    },
                    {
                        "name": "-l",
                        "content": "",
                        "flag": "-l"
                    },
                    {
                        "name": "-m",
                        "content": "",
                        "flag": "-m"
                    },
                    {
                        "name": "-n",
                        "content": "",
                        "flag": "-n"
                    },
                    {
                        "name": "-p",
                        "content": "",
                        "flag": "-p"
                    },
                    {
                        "name": "-r",
                        "content": "",
                        "flag": "-r"
                    },
                    {
                        "name": "-s",
                        "content": "",
                        "flag": "-s"
                    },
                    {
                        "name": "-t",
                        "content": "",
                        "flag": "-t"
                    },
                    {
                        "name": "-u",
                        "content": "",
                        "flag": "-u"
                    },
                    {
                        "name": "-v",
                        "content": "",
                        "flag": "-v"
                    },
                    {
                        "name": "-w",
                        "content": "",
                        "flag": "-w"
                    },
                    {
                        "name": "-x",
                        "content": "",
                        "flag": "-x"
                    },
                    {
                        "name": "-y",
                        "content": "",
                        "flag": "-y"
                    },
                    {
                        "name": "sh/ksh emulation set",
                        "content": ""
                    },
                    {
                        "name": "-C",
                        "content": "",
                        "flag": "-C"
                    },
                    {
                        "name": "-T",
                        "content": "",
                        "flag": "-T"
                    },
                    {
                        "name": "-X",
                        "content": "",
                        "flag": "-X"
                    },
                    {
                        "name": "-a",
                        "content": "",
                        "flag": "-a"
                    },
                    {
                        "name": "-b",
                        "content": "",
                        "flag": "-b"
                    },
                    {
                        "name": "-e",
                        "content": "",
                        "flag": "-e"
                    },
                    {
                        "name": "-f",
                        "content": "",
                        "flag": "-f"
                    },
                    {
                        "name": "-i",
                        "content": "",
                        "flag": "-i"
                    },
                    {
                        "name": "-l",
                        "content": "",
                        "flag": "-l"
                    },
                    {
                        "name": "-m",
                        "content": "",
                        "flag": "-m"
                    },
                    {
                        "name": "-n",
                        "content": "",
                        "flag": "-n"
                    },
                    {
                        "name": "-p",
                        "content": "",
                        "flag": "-p"
                    },
                    {
                        "name": "-r",
                        "content": "",
                        "flag": "-r"
                    },
                    {
                        "name": "-s",
                        "content": "",
                        "flag": "-s"
                    },
                    {
                        "name": "-t",
                        "content": "",
                        "flag": "-t"
                    },
                    {
                        "name": "-u",
                        "content": "",
                        "flag": "-u"
                    },
                    {
                        "name": "-v",
                        "content": "",
                        "flag": "-v"
                    },
                    {
                        "name": "-x",
                        "content": "",
                        "flag": "-x"
                    },
                    {
                        "name": "Also note",
                        "content": ""
                    },
                    {
                        "name": "-A",
                        "content": "",
                        "flag": "-A"
                    },
                    {
                        "name": "-b",
                        "content": "",
                        "flag": "-b"
                    },
                    {
                        "name": "-c",
                        "content": "",
                        "flag": "-c"
                    },
                    {
                        "name": "-m",
                        "content": "",
                        "flag": "-m"
                    },
                    {
                        "name": "-o",
                        "content": "",
                        "flag": "-o"
                    },
                    {
                        "name": "-s",
                        "content": "zsh 5.8.1                                 February 12, 2022                            ZSHOPTIONS(1)",
                        "flag": "-s"
                    }
                ]
            }
        }
    }
}