ZSH only displaying last 16 or so commands with history. HISTSIZE & SAVEHIST are 500

In ZSH when I type history I'm only displayed the last 16 or so commands. I would like history to display all the existing commands in the history file.

When I look in my .zsh_history (my history file) I see all the 500 previous commands that should be there.

I looked in the man page, but I don't see anything that controls how many of the history items are listed. I also looked in my, env but don't see anything that could be controlling this.

Any help would be appreciated! thanks.


history 1 (or history 1 -1) will display all entries from 1 (first entry) to -1 (last entry). You can also use history 1 100 to display the first 100 entries or history -100 -1 to display the last 100 etc.

For more information see the section on fc in man zshbuiltins. (history is equivalent to fc -l).


The accepted answer is simply correct, but I would like to quote some official documentation about this, in case it helps someone. (And this is too long for comment.) First look at history:

Same as fc -l.

Simple enough. Now look at fc:

fc -l [ -LI ] [ -nrdfEiD ] [ -t <timefmt> ] [ -m <match> ]
      [ <old>=<new> ... ] [ <first> [ <last> ] ]

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.

So history 1 means fc -l 1, which means starting from the first entry. Similarly if you want “last n” history (history n in Bash) you need history -n. As for default value:

If first is not specified, it will be set to -1 (the most recent event), or to -16 if the -l flag is given.