zshzle

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       zshzle - zsh command line editor


DESCRIPTION

       If  the ZLE option is set (it is by default) and the shell
       input is attached to the terminal, the user is allowed  to
       edit command lines.

       There  are  two display modes.  The first, multiline mode,
       is the default.  It only works if the  TERM  parameter  is
       set  to a valid terminal type that can move the cursor up.
       The second, single line mode, is used if TERM  is  invalid
       or  incapable  of  moving  the  cursor  up, or if the SIN-
       GLE_LINE_ZLE option is set.  This mode is similar to  ksh,
       and  uses  no  termcap sequences.  If TERM is "emacs", the
       ZLE option will be unset by the shell.

   Bindings
       Command bindings may be set  using  the  bindkey  builtin.
       There  are  two  keymaps-the main keymap and the alternate
       keymap.  The alternate keymap is bound to vi command mode.
       The  main  keymap  is  bound to emacs mode by default.  To
       bind the main keymap to vi insert mode,  use  bindkey  -v.
       However,  if one of the VISUAL or EDITOR environment vari-
       ables contain the string vi when the shell starts  up  the
       main keymap will be bound to vi insert mode by default.

       The  following is a list of all the key commands and their
       default bindings in emacs and vi command mode.

   Movement
       vi-backward-blank-word (unbound) (B)
              Move backward one word, where a word is defined  as
              a series of non-blank characters.

       backward-char (^B ESC-[D) (unbound)
              Move backward one character.

       vi-backward-char (unbound) (h)
              Move   backward  one  character,  without  changing
              lines.

       backward-word (ESC-B ESC-b) (unbound)
              Move to the beginning of the previous word.

       emacs-backward-word
              Move to the beginning of the previous word.

       vi-backward-word (unbound) (b)
              Move to the beginning of  the  previous  word,  vi-
              style.

       beginning-of-line (^A) (unbound)
              Move  to  the beginning of the line.  If already at
              the beginning of the line, move to the beginning of
              the previous line, if any.

       vi-beginning-of-line
              Move to the beginning of the line, without changing
              lines.

       end-of-line (^E) (unbound)
              Move to the end of the line.  If already at the end
              of  the  line, move to the end of the next line, if
              any.

       vi-end-of-line (unbound) ($)
              Move to the end of the line.   If  an  argument  is
              given  to this command, the cursor will be moved to
              the end of the line (argument - 1) lines down.

       vi-forward-blank-word (unbound) (W)
              Move forward one word, where a word is defined as a
              series of non-blank characters.

       vi-forward-blank-word-end (unbound) (E)
              Move  to the end of the current word, or, if at the
              end of the current word, to the  end  of  the  next
              word,  where  a word is defined as a series of non-
              blank characters.

       forward-char (^F ESC-[C) (unbound)
              Move forward one character.

       vi-forward-char (unbound) (space l)
              Move forward one character.

       vi-find-next-char (^X^F) (f)
              Read a character from the keyboard, and move to the
              next occurrence of it in the line.

       vi-find-next-char-skip (unbound) (t)
              Read a character from the keyboard, and move to the
              position just before the next occurrence of  it  in
              the line.

       vi-find-prev-char (unbound) (F)
              Read a character from the keyboard, and move to the
              previous occurrence of it in the line.

       vi-find-prev-char-skip (unbound) (T)
              Read a character from the keyboard, and move to the
              position  just  after the previous occurrence of it
              in the line.

       vi-first-non-blank (unbound) (^)
              Move to the first non-blank character in the  line.

       vi-forward-word (unbound) (w)
              Move forward one word, vi-style.

       forward-word (ESC-F ESC-f) (unbound)
              Move  to  the beginning of the next word.  The edi-
              tor's idea of a word is specified  with  the  WORD-
              CHARS parameter.

       emacs-forward-word
              Move to the end of the next word.

       vi-forward-word-end (unbound) (e)
              Move to the end of the next word.

       vi-goto-column (ESC-|) (|)
              Move  to  the column specified by the numeric argu-
              ment.

       vi-goto-mark (unbound) (`)
              Move to the specified mark.

       vi-goto-mark-line (unbound) (')
              Move to beginning of the line containing the speci-
              fied mark.

       vi-repeat-find (unbound) (;)
              Repeat the last vi-find command.

       vi-rev-repeat-find (unbound) (,)
              Repeat  the  last  vi-find  command in the opposite
              direction.

   History
       beginning-of-buffer-or-history (ESC-<) (unbound)
              Move to the beginning of the buffer, or if  already
              there, move to the first event in the history list.

       beginning-of-line-hist
              Move to the beginning of the line.  If  already  at
              the  beginning  of the buffer, move to the previous
              history line.

       beginning-of-history
              Move to the first event in the history list.

       down-line-or-history (^N ESC-[B) (j)
              Move down a line in the buffer, or  if  already  at
              the bottom line, move to the next event in the his-
              tory list.

       vi-down-line-or-history (unbound) (+)
              Move down a line in the buffer, or  if  already  at
              the bottom line, move to the next event in the his-
              tory  list.   Then  move  to  the  first  non-blank
              character on the line.

       down-line-or-search
              Move  down  a  line in the buffer, or if already at
              the bottom line, search forward in the history  for
              a line beginning with the first word in the buffer.

       down-history (unbound) (^N)
              Move to the next event in the history list.

       history-beginning-search-backward
              Search backward in the history for a line beginning
              with  the  current  line  up  to  the cursor.  This
              leaves the cursor in its original position.

       end-of-buffer-or-history (ESC->) (unbound)
              Move to the end of the buffer, or if already there,
              move to the last event in the history list.

       end-of-line-hist
              Move to the end of the line.  If already at the end
              of the buffer, move to the next history line.

       end-of-history
              Move to the last event in the history list.

       vi-fetch-history (unbound) (G)
              Fetch the history line  specified  by  the  numeric
              argument.   This  defaults  to  the current history
              line (i.e. the one that isn't history yet).

       history-incremental-search-backward (^R ^Xr) (unbound)
              Search  backward  incrementally  for  a   specified
              string.   The  string  may begin with `^' to anchor
              the  search  to  the  beginning  of  the  line.   A
              restricted set of editing functions is available in
              the mini-buffer. An interrupt signal, as defined by
              the stty setting,  will stop the search and go back
              to the original line. An undefined  key  will  have
              the same effect. The supported functions are: back-
              ward-delete-char,  quoted-insert,  accept-and-hold,
              accept-and-infer-next-history,    accept-line   and
              accept-line-and-down-history;   magic-space    just
              inserts  a  space.  Any  string that is bound to an
              out-string (via bindkey -s) will behave as if  out-
              string  were typed directly.  Typing the binding of
              history-incremental-search-backward  will  get  the
              next occurrence of the contents of the mini-buffer.
              Typing the binding  of  history-incremental-search-
              forward inverts the sense of the search. The direc-
              tion of the search is indicated in the mini-buffer.
              Any multi-character string that is not bound to one
              of the above functions will beep and interrupt  the
              search,  leaving the last found line in the buffer.
              Any single character that is not bound  to  one  of
              the above functions, or self-insert or self-insert-
              unmeta, will have the same effect but the  function
              will be executed.

       history-incremental-search-forward (^Xs) (unbound)
              Search   forward   incrementally  for  a  specified
              string.  The string may begin with  `^'  to  anchor
              the  search to the beginning of the line. The func-
              tions available in the mini-buffer are the same  as
              for history-incremental-search-backward.

       history-search-backward (ESC-P ESC-p) (unbound)
              Search backward in the history for a line beginning
              with the first word in the buffer.

       vi-history-search-backward (unbound) (?)
              Search backward in  the  history  for  a  specified
              string.   The  string  may begin with `^' to anchor
              the  search  to  the  beginning  of  the  line.   A
              restricted set of editing functions is available in
              the mini-buffer. An interrupt signal, as defined by
              the  stty setting,  will stop the search, as will a
              character  bound  to  vi-cmd-mode.  The   functions
              available  in  the  mini-buffer  are:  accept-line,
              backward-delete-char,  vi-backward-delete-char  and
              quoted-insert.  Any string that is bound to an out-
              string (via bindkey -s)  will  behave  as  if  out-
              string  were  typed  directly.  Any other character
              that is not bound to  self-insert  or  self-insert-
              unmeta will beep and be ignored. If the function is
              called from vi command mode,  the  bindings  of  vi
              insert mode will be used.

       history-search-forward (ESC-N ESC-n) (unbound)
              Search  forward in the history for a line beginning
              with the first word in the buffer.

       vi-history-search-forward (unbound) (/)
              Search forward  in  the  history  for  a  specified
              string.   The  string  may begin with `^' to anchor
              the search to the beginning of the line. The  func-
              tions  available in the mini-buffer are the same as
              for vi-history-search-backward.

       infer-next-history (^X^N) (unbound)
              Search in the history list for a line matching  the
              current one and fetch the event following it.

       insert-last-word (ESC-_ ESC-.) (unbound)
              Insert  the  last  word  from  the previous history
              event at the cursor position.


       vi-repeat-search (unbound) (n)
              Repeat the last vi history search.

       vi-rev-repeat-search (unbound) (N)
              Repeat the last vi history search, but in  reverse.

       toggle-literal-history (ESC-R ESC-r) (unbound)
              Toggle  between  literal  and lexical history.  The
              default  is  lexical  history  unless  the  HISTLIT
              option is set.

       up-line-or-history (^P ESC-[A) (k)
              Move  up a line in the buffer, or if already at the
              top line, move to the previous event in the history
              list.

       vi-up-line-or-history (unbound) (-)
              Move  up a line in the buffer, or if already at the
              top line, move to the previous event in the history
              list.   Then  move to the first non-blank character
              on the line.

       up-line-or-search
              Move up a line in the buffer, or if already at  the
              top line, search backward in the history for a line
              beginning with the first word in the buffer.

       up-history (unbound) (^P)
              Move to the previous event in the history list.

       history-beginning-search-forward
              Search forward in the history for a line  beginning
              with  the  current  line  up  to  the cursor.  This
              leaves the cursor in its original position.

   Modifying Text
       vi-add-eol (unbound) (A)
              Move to the end of the line and enter insert  mode.

       vi-add-next (unbound) (a)
              Enter  insert  mode  after the current cursor posi-
              tion, without changing lines.

       backward-delete-char (^H ^?) (^?)
              Delete the character behind the cursor.

       vi-backward-delete-char (unbound) (X)
              Delete the character  behind  the  cursor,  without
              changing  lines.   If  in  insert  mode, this won't
              delete past the point where insert  mode  was  last
              entered.

       backward-delete-word
              Delete the word behind the cursor.

       backward-kill-line
              Kill  from  the beginning of the line to the cursor
              position.

       backward-kill-word (^W ESC-^H ESC-^?)
              Kill the word behind the cursor.

       vi-backward-kill-word (unbound) (^W)
              Kill the word behind the cursor, without going past
              the point where insert mode was last entered.

       capitalize-word (ESC-C ESC-c) (unbound)
              Capitalize the current word and move past it.

       vi-change (unbound) (c)
              Read a movement command from the keyboard, and kill
              from the cursor position to  the  endpoint  of  the
              movement.   Then enter insert mode.  If the command
              is vi-change, change the current line.

       vi-change-eol (unbound) (C)
              Kill to the end of the line and enter insert  mode.

       vi-change-whole-line (unbound) (S)
              Kill the current line and enter insert mode.

       copy-region-as-kill (ESC-W ESC-w) (unbound)
              Copy  the  area  from the cursor to the mark to the
              kill buffer.

       copy-prev-word (ESC-^_) (unbound)
              Duplicate the word behind the cursor.

       vi-delete (unbound) (d)
              Read a movement command from the keyboard, and kill
              from  the  cursor  position  to the endpoint of the
              movement.  If the command is  vi-delete,  kill  the
              current line.

       delete-char
              Delete the character under the cursor.

       vi-delete-char (unbound) (x)
              Delete  the  character  under  the  cursor, without
              going past the end of the line.

       delete-word (ESC-D ESC-d) (unbound)
              Delete the current word.

       down-case-word (ESC-L ESC-l) (unbound)
              Convert the current word to all lowercase and  move
              past it.


       kill-word
              Kill the current word.

       gosmacs-transpose-chars
              Exchange the two characters behind the cursor.

       vi-indent (unbound) (>)
              Indent a number of lines.

       vi-insert (unbound) (i)
              Enter insert mode.

       vi-insert-bol (unbound) (I)
              Move  to  the first non-blank character on the line
              and enter insert mode.

       vi-join (^X^J) (J)
              Join the current line with the next one.

       kill-line (^K) (unbound)
              Kill from the cursor to the end of  the  line.   If
              already  on  the  end of the line, kill the newline
              character.

       vi-kill-line (unbound) (^U)
              Kill from the cursor back to wherever  insert  mode
              was last entered.

       vi-kill-eol (unbound) (D)
              Kill from the cursor to the end of the line.

       kill-region
              Kill from the cursor to the mark.

       kill-buffer (^X^K) (^U)
              Kill the entire buffer.

       kill-whole-line (^U) (unbound)
              Kill the current line.

       vi-match-bracket (^X^B) (%)
              Move  to  the  bracket character (one of {}, (), or
              []) that matches the one under the cursor.

       vi-open-line-above (unbound) (O)
              Open a line above the cursor and enter insert mode.

       vi-open-line-below (unbound) (o)
              Open a line below the cursor and enter insert mode.

       vi-oper-swap-case
              Read a movement command from the keyboard, and swap
              the case of all characters from the cursor position
              to the endpoint of the movement.  If  the  movement
              command  is vi-oper-swap-case, swap the case of all
              characters on the current line.

       overwrite-mode (^X^O) (unbound)
              Toggle between overwrite mode and insert mode.

       vi-put-before (unbound) (P)
              Insert the contents of the kill buffer  before  the
              cursor.   If the kill buffer contains a sequence of
              lines (as opposed to characters),  paste  it  above
              the current line.

       vi-put-after (unbound) (p)
              Insert  the  contents  of the kill buffer after the
              cursor.  If the kill buffer contains a sequence  of
              lines  (as  opposed  to characters), paste it below
              the current line.

       quoted-insert (^V) (^V)
              Insert the next character  typed  into  the  buffer
              literally.

       quote-line (ESC-') (unbound)
              Quote  the current line; that is, put a ' character
              at the beginning and the end,  and  convert  all  '
              characters to '\''.

       quote-region (ESC-") (unbound)
              Quote the region from the cursor to the mark.

       vi-replace (unbound) (R)
              Enter overwrite mode.

       vi-repeat-change (unbound) (.)
              Repeat  the  last  vi mode text modification.  If a
              count was used with the modification, it is  remem-
              bered.   If  a  count  is given to this command, it
              overrides the remembered count, and  is  remembered
              for  future  uses  of this command.  The cut buffer
              specification is similarly remembered.

       vi-replace-chars (unbound) (r)
              Replace the character under the cursor with a char-
              acter read from the keyboard.

       self-insert (printable characters)
              Put  a  character in the buffer at the cursor posi-
              tion.

       self-insert-unmeta (ESC-^I ESC-^J ESC-^M) (unbound)
              Put a character in the buffer after  stripping  the
              meta bit and converting ^M to ^J.


       vi-substitute (unbound) (s)
              Substitute the next character(s).

       vi-swap-case (unbound) (~)
              Swap the case of the character under the cursor and
              move past it.

       transpose-chars (^T) (unbound)
              Exchange the two characters to the left of the cur-
              sor  if at end of line, else exchange the character
              under the cursor with the character to the left.

       transpose-words (ESC-T ESC-t) (unbound)
              Exchange the current word with the one before it.

       vi-unindent (unbound) (<)
              Unindent a number of lines.

       up-case-word (ESC-U ESC-u) (unbound)
              Convert the current word to all caps and move  past
              it.

       yank (^Y) (unbound)
              Insert  the contents of the kill buffer at the cur-
              sor position.

       yank-pop (ESC-y) (unbound)
              Remove the text just yanked, rotate the  kill-ring,
              and yank the new top.  Only works following yank or
              yank-pop.

       vi-yank (unbound) (y)
              Read a movement command from the keyboard, and copy
              the region from the cursor position to the endpoint
              of the movement into the kill buffer.  If the  com-
              mand is vi-yank, copy the current line.

       vi-yank-whole-line (unbound) (Y)
              Copy the current line into the kill buffer.

       vi-yank-eol
              Copy the region from the cursor position to the end
              of the line into the kill buffer.   Arguably,  this
              is  what  Y  should  do in vi, but it isn't what it
              actually does.

   Arguments
       digit-argument (ESC-0..ESC-9) (1-9)
              Start a new numeric argument, or add to the current
              one.

       neg-argument (ESC--) (unbound)
              Changes the sign of the following argument.

       universal-argument
              Multiply the argument of the next command by 4.

   Completion
       accept-and-menu-complete
              In a menu completion, insert the current completion
              into the buffer, and advance to the  next  possible
              completion.

       complete-word
              Attempt completion on the current word.

       delete-char-or-list (^D) (unbound)
              Delete the character under the cursor.  If the cur-
              sor is at the end of the line, list  possible  com-
              pletions for the current word.

       execute-named-cmd (ESC-x) (unbound)
              Read  the name of an editor command and execute it.
              A restricted set of editing functions is  available
              in the mini-buffer. An interrupt signal, as defined
              by the stty setting, will abort the  function.  The
              allowed  functions  are:  backward-delete-char, vi-
              backward-delete-char, kill-region (kills  the  last
              word),  backward-kill-word,  vi-backward-kill-word,
              kill-whole-line, vi-kill-line,  backward-kill-line,
              list-choices,  delete-char-or-list and accept-line.
              The space and tab characters, if not bound  to  one
              of these functions, will complete the name and then
              list the possibilities if the  autolist  option  is
              set.

       execute-last-named-cmd (ESC-z) (unbound)
              Redo the last function executed with execute-named-
              cmd.

       expand-cmd-path
              Expand the current command to its full pathname.

       expand-or-complete (TAB) (TAB ^X)
              Attempt shell expansion on the  current  word.   If
              that fails, attempt completion.

       expand-or-complete-prefix
              Attempt  shell  expansion  on the current word upto
              cursor.

       expand-history (ESC-space ESC-!) (unbound)
              Perform history expansion on the edit buffer.

       expand-word (^X*) (unbound)
              Attempt shell expansion on the current word.


       list-choices (ESC-^D) (^D =)
              List possible completions for the current word.

       list-expand (^Xg ^XG) (^G)
              List the expansion of the current word.

       magic-space
              Perform history expansion and insert a  space  into
              the buffer.  This is intended to be bound to space.

       menu-complete
              Like complete-word, except that menu completion  is
              used.  See the MENU_COMPLETE option below.

       menu-expand-or-complete
              Like  expand-or-complete,  except that menu comple-
              tion is used.

       reverse-menu-complete
              See the MENU_COMPLETE option below.

   Miscellaneous
       accept-and-hold (ESC-A ESC-a) (unbound)
              Push the contents of the buffer on the buffer stack
              and execute it.

       accept-and-infer-next-history
              Execute  the  contents  of the buffer.  Then search
              the history list for a line  matching  the  current
              one  and  push  the event following onto the buffer
              stack.

       accept-line (^J ^M) (^J ^M)
              Execute the contents of the buffer.

       accept-line-and-down-history (^O) (unbound)
              Execute the current line, and push the next history
              event on the the buffer stack.

       vi-cmd-mode (^X^V) (^[)
              Enter  command  mode;  that  is,  use the alternate
              keymap.  Yes, this is bound  by  default  in  emacs
              mode.

       vi-caps-lock-panic
              Hang  until  any lowercase key is pressed.  This is
              for vi users without the mental  capacity  to  keep
              track of their caps lock key (like the author).

       clear-screen (^L ESC-^L) (^L)
              Clear the screen and redraw the prompt.

       describe-key-briefly
              Waits for a keypress then prints the function bound
              to the pressed key.

       exchange-point-and-mark (^X^X) (unbound)
              Exchange the cursor position with the  position  of
              the mark.

       get-line (ESC-G ESC-g) (unbound)
              Pop the top line off the buffer stack and insert it
              at the cursor position.

       pound-insert
              If there is no # character at the beginning of  the
              buffer,  add  one.  If there is one, remove it.  In
              either case, accept the current line.  The INTERAC-
              TIVE_COMMENTS  option  must be set for this to have
              any usefulness.

       vi-pound-insert (unbound) (#)
              If there is no # character at the beginning of  the
              current line, add one.  If there is one, remove it.
              The INTERACTIVE_COMMENTS option  must  be  set  for
              this to have any usefulness.

       push-input
              Push  the  entire  current multiline construct onto
              the buffer stack and return to the top-level  (PS1)
              prompt.   If the current parser construct is only a
              single line, this is exactly like push-line.   Next
              time  the  editor  starts up or is popped with get-
              line, the construct will be popped off the  top  of
              the  buffer  stack  and  loaded  into  the  editing
              buffer.

       push-line (^Q ESC-Q ESC-q) (unbound)
              Push the current buffer onto the buffer  stack  and
              clear  the buffer.  Next time the editor starts up,
              the buffer will be popped off the top of the buffer
              stack and loaded into the editing buffer.

       push-line-or-edit
              At  the top-level (PS1) prompt, equivalent to push-
              line.  At a secondary (PS2) prompt, move the entire
              current multiline construct into the editor buffer.
              The latter is equivalent to push-input followed  by
              get-line.

       redisplay (unbound) (^R)
              Redisplays the edit buffer.

       send-break (^G) (unbound)
              Abort  the  current  editor  function, eg. execute-
              named-command, or the editor itself, eg. if you are
              in  vared.  Otherwise abort the parsing of the cur-
              rent line.

       run-help (ESC-H ESC-h) (unbound)
              Push the buffer onto the buffer stack, and  execute
              the  command  "run-help cmd", where cmd is the cur-
              rent command.  run-help is normally aliased to man.

       vi-set-buffer (unbound) (")
              Specify  a  buffer to be used in the following com-
              mand.

       vi-set-mark (unbound) (m)
              Set the specified mark at the cursor position.

       set-mark-command (^@) (unbound)
              Set the mark at the cursor position.

       spell-word (ESC-$ ESC-S ESC-s) (unbound)
              Attempt spelling correction on the current word.

       undefined-key
              Beep.

       undo (^_ ^Xu ^X^U) (unbound)
              Incrementally undo the last text modification.

       vi-undo-change (unbound) (u)
              Undo the last text modification.  If repeated, redo
              the modification.

       where-is
              Read  the  name  of an editor command and and print
              the listing of key sequences that invoke the speci-
              fied command.

       which-command (ESC-?) (unbound)
              Push  the buffer onto the buffer stack, and execute
              the command "which-command cmd", where cmd  is  the
              current command.  which-command is normally aliased
              to whence.

       vi-digit-or-beginning-of-line (unbound) (0)
              If the last command executed was a digit as part of
              an  argument,  continue  the  argument.  Otherwise,
              execute vi-beginning-of-line.
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.