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 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  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
       standard 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 executed.

       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'
              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  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  func-
       tion scope is exited, which is a much better solution than creat-
       ing  a  trap  function to call `fc -P' manually.  If no arguments
       are specified, the history list is left empty, $HISTFILE  is  un-
       set,  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 $HIST-
       SIZE.  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
       $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  vari-
       ables to be local at the top of your function and using the auto-
       matic  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 history
       out to the given file.  If no filename is specified,  the  $HIST-
       FILE  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 -.
