set [ {+|-}options | {+|-}o [ option_name ] ] ... [ {+|-}A [ name ] ]
    [ arg ... ]
       Set the options for the shell and/or set the positional  parameters,
       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 supplied 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 replace
       the initial elements of that array; if no name is specified, all ar-
       rays 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 argu-
       ments following name are treated as values for the array, regardless
       of their form.  If the option is set, normal option processing  con-
       tinues  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 ar-
       ray 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 arguments,  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  ar-
       gument 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.
