fc [ -e ename ] [ -s ] [ -LI ] [ -m match ] [ old=new ... ] [ first [ last
] ]
fc -l [ -LI ] [ -nrdfEiD ] [ -t timefmt ] [ -m match ]
      [ old=new ... ] [ first [ last ] ]
fc -p [ -a ] [ filename [ histsize [ savehistsize ] ] ]
fc -P
fc -ARWI [ filename ]
       The  fc  command  controls the interactive history mechanism.  Note
       that reading and writing of history options is  only  performed  if
       the  shell is interactive.  Usually this is detected automatically,
       but it can be forced by setting the interactive option when  start-
       ing the shell.

       The  first  two forms of this command select a range of events from
       first to last from the history list.  The arguments first and  last
       may  be specified as a number or as a string.  A negative number is
       used as an offset to the current history event  number.   A  string
       specifies  the  most  recent event beginning with the given string.
       All substitutions old=new, if any, are then performed on  the  text
       of the events.

       The  range of events selected by numbers can be narrowed further by
       the following flags.
       -I     restricts to only internal events (not from $HISTFILE)
       -L     restricts to only local events (not from other  shells,  see
              SHARE_HISTORY  in  zshoptions(1)  --  note that $HISTFILE is
              considered local when read at startup)
       -m     takes the first argument  as  a  pattern  (which  should  be
              quoted)  and  only  the history events matching this pattern
              are considered

       If first is not specified, it will be set to -1  (the  most  recent
       event),  or  to -16 if the -l flag is given.  If last is not speci-
       fied, it will be set to first, or to -1 if the -l  flag  is  given.
       However, if the current event has added entries to the history with
       `print  -s'  or  `fc -R', then the default last for -l includes all
       new history entries since the current event began.

       When the -l flag is given, the resulting events are listed on stan-
       dard output.  Otherwise the editor program specified by -e ename is
       invoked on a file containing these history events.  If  -e  is  not
       given,  the  value  of the parameter FCEDIT is used; if that is not
       set the value of the parameter EDITOR is used; if that is not set a
       builtin default, usually `vi' is used.  If ename is `-', no  editor
       is  invoked.   When editing is complete, the edited command is exe-
       cuted.

       The flag `-s' is equivalent to `-e -'.  The flag  -r  reverses  the
       order  of  the events and the flag -n suppresses event numbers when
       listing.

       Also when listing,
       -d     prints timestamps for each event
       -f     prints full time-date stamps in the US `MM/DD/YY hh:mm' for-
              mat
       -E     prints full time-date stamps  in  the  European  `dd.mm.yyyy
              hh:mm' format
       -i     prints  full  time-date stamps in ISO8601 `yyyy-mm-dd hh:mm'
              format
       -t fmt
              prints time and date stamps in the given format; fmt is for-
              matted with the strftime function with  the  zsh  extensions
              described  for  the  %D{string} prompt format in the section
              EXPANSION OF PROMPT SEQUENCES in zshmisc(1).  The  resulting
              formatted string must be no more than 256 characters or will
              not be printed
       -D     prints  elapsed  times;  may be combined with one of the op-
              tions above

       `fc -p' pushes the current history list onto a stack  and  switches
       to  a  new  history list.  If the -a option is also specified, this
       history list will be automatically popped when the current function
       scope is exited, which is a much better solution  than  creating  a
       trap function to call `fc -P' manually.  If no arguments are speci-
       fied,  the  history  list  is  left  empty, $HISTFILE is unset, and
       $HISTSIZE & $SAVEHIST are set to their default values.  If one  ar-
       gument  is  given,  $HISTFILE  is set to that filename, $HISTSIZE &
       $SAVEHIST are left unchanged, and the history file is read  in  (if
       it  exists)  to  initialize  the new list.  If a second argument is
       specified, $HISTSIZE & $SAVEHIST are  instead  set  to  the  single
       specified  numeric  value.   Finally, if a third argument is speci-
       fied, $SAVEHIST is set to a separate value from $HISTSIZE.  You are
       free to change these environment values for the  new  history  list
       however you desire in order to manipulate the new history list.

       `fc  -P'  pops  the history list back to an older list saved by `fc
       -p'.  The current list is saved to its $HISTFILE before it  is  de-
       stroyed  (assuming  that  $HISTFILE and $SAVEHIST are set appropri-
       ately, of course).  The values of $HISTFILE, $HISTSIZE, and  $SAVE-
       HIST  are  restored to the values they had when `fc -p' was called.
       Note that this restoration can conflict with making these variables
       "local", so your best bet is to avoid local declarations for  these
       variables  in  functions  that  use `fc -p'.  The one other guaran-
       teed-safe combination is declaring these variables to be  local  at
       the  top  of your function and using the automatic option (-a) with
       `fc -p'.  Finally, note that it is legal to  manually  pop  a  push
       marked  for automatic popping if you need to do so before the func-
       tion exits.

       `fc -R' reads the history from the given file, `fc -W'  writes  the
       history  out to the given file, and `fc -A' appends the history out
       to the given file.  If no filename is specified, the  $HISTFILE  is
       assumed.   If  the -I option is added to -R, only those events that
       are not already contained within  the  internal  history  list  are
       added.   If  the  -I option is added to -A or -W, only those events
       that are new since last incremental  append/write  to  the  history
       file are appended/written.  In any case, the created file will have
       no more than $SAVEHIST entries.

history
       Same as fc -l.

r      Same as fc -e -.
