summaryrefslogtreecommitdiff
path: root/Doc/help/fc
blob: 07fa8ae011c94427424926037201cd13f182c9af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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 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 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  -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 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  ap-
       pend/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 -.