fc [ -e ename ] [ -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  automati
       cally,  but  it  can be forced by setting the interactive option
       when starting 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  nega
       tive  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.

       In addition to the the number range,
       -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 (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 spec
       ified, 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
       standard output.  Otherwise the editor program ename is  invoked
       on  a  file  containing  these  history events.  If ename 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 com
       mand is executed.

       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'
              format
       -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
              formatted  with the strftime function with the zsh exten
              sions 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 char
              acters or will not be printed
       -D     prints  elapsed  times;  may  be combined with one of the
              options above

       `fc -p' pushes  the  current  history  list  onto  a  stack  and
       switches to a new history list.  If the -a option is also speci
       fied, this history list will be automatically  popped  when  the
       current  function  scope is exited, which is a much better solu
       tion than creating a trap function to call `fc -P' manually.  If
       no  arguments  are  specified,  the  history list is left empty,
       $HISTFILE is unset, and $HISTSIZE & $SAVEHIST are set  to  their
       default  values.   If one argument 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 specified, $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
       destroyed  (assuming that $HISTFILE and $SAVEHIST are set appro
       priately, of course).  The values of $HISTFILE,  $HISTSIZE,  and
       $SAVEHIST  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 dec
       larations for these variables in functions  that  use  `fc  -p'.
       The  one  other  guaranteed-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 function 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  his
       tory  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 -.
