       bindkey -mevd
       bindkey -r in-string ...
       bindkey [ -a ] in-string [ command ] ...
       bindkey -s [ -a ] in-string out-string ...
              The -e and -v options put the keymaps in emacs mode
              or vi mode respectively; they cannot be used simul-
              taneously. The -d option resets all bindings to the
              compiled-in  settings.  If not used with options -e
              or -v, the maps will be left in emacs mode,  or  in
              vi mode if the VISUAL or EDITOR variables exist and
              contain the string "vi".  Metafied  characters  are
              bound  to  self-insert  by  default.  The -m option
              loads the compiled-in bindings of these  characters
              for  the  mode determined by the preceding options,
              or the current mode if  used  alone.  Any  previous
              bindings done by the user will be preserved. If the
              -r option is given, remove any binding for each in-
              string.  If  the  -s  option is not specified, bind
              each in-string to a specified command. If  no  com-
              mand  is  specified, print the binding of in-string
              if it is bound, or return a nonzero exit code if it
              is  not  bound. If the -s option is specified, bind
              each in-string to each specified  out-string.  When
              in-string  is typed, out-string will be pushed back
              and treated as input to the line editor. This  pro-
              cess is recursive but, to avoid infinite loops, the
              shell will report an error if more than 20 consecu-
              tive replacements happen. If the -a option is spec-
              ified,  bind  the  in-strings  in  the  alternative
              keymap  instead  of the standard one.  The alterna-
              tive keymap is used in vi command mode.

              It's possible for an in-string to be bound to some-
              thing  and  also be the beginning of a longer bound
              string. In this case the shell will wait a  certain
              time to see if more characters are typed and if not
              it  will  execute  the  binding.  This  timeout  is
              defined by the KEYTIMEOUT parameter; its default is
              0.4 sec. No timeout is done if the prefix string is
              not bound.

              For either in-string or out-string, control charac-
              ters may be specified in the form ^X, and the back-
              slash may be used to introduce one of the following
              escape sequences:

                      \a     bell character
                      \n     linefeed (newline)
                      \b     backspace
                      \t     horizontal tab
                      \v     vertical tab
                      \f     form feed
                      \r     carriage return
                      \e, \E escape
                      \NNN   character code in octal
                      \xNN   character code in hexadecimal
                      \M-xxx character or  escape  sequence  with
                             meta  bit set. The `-' after the `M'
                             is optional.
                      \C-X   control character.   The  `-'  after
                             the `C' is optional.

              In all other cases, \ escapes the following charac-
              ter.  Delete is written as `^?'. Note  that  `\M^?'
              and `^\M?' are not the same.

              Multi-character  in-strings cannot contain the null
              character ("^@" or "^ "). If they appear in a bind-
              key  command,  they  will be silently translated to
              "\M-^@". This restriction does not  apply  to  out-
              strings,  single-character in-strings and the first
              character of a multi-char in-string.
