set [ {+|-}options | {+|-}o [ option_name ] ] ... [ {+|-}A [ name ] ]
    [ arg ... ]
       Set  the  options for the shell and/or set the positional parame-
       ters, or declare and set an array.  If the -s option is given, it
       causes the specified arguments to be sorted before assigning them
       to the positional parameters (or to  the  array  name  if  -A  is
       used).   With  +s  sort  arguments  in descending order.  For the
       meaning of the other flags,  see  zshoptions(1).   Flags  may  be
       specified  by name using the -o option. If no option name is sup-
       plied with -o, the current option states are  printed:   see  the
       description  of  setopt below for more information on the format.
       With +o they are printed in a form that can be used as  input  to
       the shell.

       If  the  -A flag is specified, name is set to an array containing
       the given args; if no name is specified, all arrays  are  printed
       together with their values.

       If  +A is used and name is an array, the given arguments will re-
       place the initial elements of that array; if no  name  is  speci-
       fied, all arrays are printed without their values.

       The  behaviour  of  arguments after -A name or +A name depends on
       whether the option KSH_ARRAYS is set.  If it is not set, all  ar-
       guments  following  name are treated as values for the array, re-
       gardless of their form.  If the option is set, normal option pro-
       cessing continues at  that  point;  only  regular  arguments  are
       treated as values for the array.  This means that

              set -A array -x -- foo

       sets  array to `-x -- foo' if KSH_ARRAYS is not set, but sets the
       array to foo and turns on the option `-x' if it is set.

       If the -A flag is not present, but there are arguments beyond the
       options, the positional parameters are set.  If the  option  list
       (if  any)  is  terminated by `--', and there are no further argu-
       ments, the positional parameters will be unset.

       If no arguments and no `--' are given, then the names and  values
       of  all  parameters  are  printed on the standard output.  If the
       only argument is `+', the names of all parameters are printed.

       For historical reasons, `set -' is treated as `set +xv' and  `set
       -  args'  as  `set  +xv -- args' when in any other emulation mode
       than zsh's native mode.
