
























关于历史记录,zsh 有很多选项。我的配置是:
HISTFILE=~/.histfile HISTSIZE=10000 SAVEHIST=10000 # 不保留重复的历史记录项 setopt hist_ignore_all_dups # 在命令前添加空格,不将此命令添加到记录文件中 setopt hist_ignore_space # zsh 4.3.6 doesn't have this option setopt hist_fcntl_lock 2>/dev/null setopt hist_reduce_blanks
最多保留一万行不重复的历史记录。对其的读取和保存没做额外的配置,因此 zsh 会在启动时读取一次,在退出时保存一次。这样,如果同时开了多个 zsh,它们不会共享启动后的历史记录项,因为还没有写到文件中去。
其实是有选项来方便在多个 zsh 中及时共享历史记录的:
setopt SHARE_HISTORY
但是这样的话,每次显示提示符时 zsh 均会读取一次历史记录,而每当新的历史记录产生时 zsh 都会写入一次。磁盘 I/O 太频繁了,我不喜欢。我只需要在我想的时候,能够手动保存和读取历史记录就可以了。读过长长的文档,发现fc可以做到这点:
# 读取历史记录 fc -IR # 保存历史记录 fc -IA
-I表示「incremental」,只有新的项目被处理。-R是读取,而-A是写入。千万不要用-IW,这样会丢失原有的历史记录。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。