通过阅读 zsh 文档,history
并且fc
不会~/.zsh_history
以非交互模式访问完整内容。我正在寻找一种方法来实现这一点,以便我可以编写搜索实用程序的脚本。我尝试过的事情:
➜ ~ fc -l 0 1
1 ls
➜ ~ echo $HISTFILE
/Users/username/.zsh_history
➜ ~ zsh -c 'echo $HISTFILE'
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; echo $HISTFILE'
/Users/username/.zsh_history
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; history'
zsh:fc:1: no such event: 1
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; fc -l 0 1'
zsh:fc:1: no events in that range
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; fc -R; fc -l 0 1'
zsh:fc:1: no events in that range
➜ ~ zsh -c 'HISTFILE=~/.zsh_history; fc -R -l 0 1'
<NO OUTPUT>
在 bash 中,您可以启用历史记录选项,set -o history
但 zsh 不存在该选项。
另一种方法是直接访问文件,但这样~/.zsh_history
我就会失去格式支持。是否有一个内置实用程序可以通过管道进行上述格式化?history
fc
~/.zsh_history
答案1
调用fc -R
读取历史文件。这只会读取最后的$HISTSIZE
条目,因此HISTSIZE
在调用之前设置为一个较大的值fc
。
HISTSIZE=999999999
fc -R ~/.zsh_history