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
       replace 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
       arguments  following  name  are treated as values for the array,
       regardless of their form.  If the option is set,  normal  option
       processing  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
       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 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.
