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 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
       specified, 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 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 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 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
       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
       appropriately, 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 declarations
       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 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 -.
