zle set-local-history 1
出于.zshrc
原因的呼唤
widgets can only be called when ZLE is active
有没有办法在启动时执行该小部件,或者可能是针对这个特殊情况的设置?
更新:我检查了 zsh 源代码,我相信这hist_skip_flags
是放仅由set-local-history
小部件控制,因此没有设置可以更改此行为。但是,很难确定是否可以在启动时运行 zle 小部件。
答案1
解决方案基于评论来自@okapi:
zle-line-init() {
if [[ "$ZLE_LOCAL_HISTORY_SET" != "1" ]]; then
ZLE_LOCAL_HISTORY_SET=1
zle set-local-history 1
fi
}
zle -N zle-line-init
zle-line-init
在每次用户输入请求时执行,因此仅在第一次运行时需要额外的环境变量来设置本地历史记录。