为什么zsh脚本中的fc -l 1(又名历史1)仅限于30个命令?

时间:2013-07-29 02:06:22

标签: zsh

当我从shell运行fc -l 1时,我会从.zsh_history获取完整的历史记录。当我从脚本运行相同的命令时,它仅限于最后30个。任何想法为什么?

我有来自oh-my-zsh的以下zsh历史记录设置

if [ -z $HISTFILE ]; then
   HISTFILE=$HOME/.zsh_history
fi

HISTSIZE=10000
SAVEHIST=10000

setopt appendhistory
setopt extended_history
setopt hist_expire_dups_first
setopt hist_ignore_dups # ignore duplication command history list
setopt hist_ignore_space
setopt hist_verify
setopt inc_append_history
setopt share_history

1 个答案:

答案 0 :(得分:3)

如果您将echo $HISTSIZE放入脚本中,则可能是30.脚本不会提取.zshrc,因此脚本不知道您的历史记录设置。

将特定于历史记录的选项放入其自己的文件history.zsh并从脚本中获取并使用fc -R在对fc的任何其他调用之前读取历史记录文件:

source ${ZDOTDIR-$HOME}/.zsh/history.zsh
fc -R
...
fc -l 1