【发布时间】:2020-08-28 10:11:16
【问题描述】:
在MacOS Catalina 上使用zsh,当我通过打开一个新窗格来拆分iTerm2 的当前窗口时,我希望能够在这个新窗格中保留前一个窗格的命令历史记录(即仍然打开)。
这里是我当前的配置到~/.zshrc:
# History
export HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000000
export SAVEHIST=$HISTSIZE
# Avoid duplicates
#setopt HIST_IGNORE_ALL_DUPS
# Remove duplicates in history
function remove_duplicates() {
echo "$(history 0 | sort -k2 -k1nr | \
uniq -f1 | sort -n | cut -c8-)" > $HISTFILE
}
remove_duplicates();
setopt inc_append_history
# When the shell exits, append to the history file instead of overwriting it
shopt -s histappend
此配置中缺少什么或我做错了什么?
还有一个问题:当我打开一个新窗格时,是否执行了 ~/.zshrc 文件(我的意思是来自 source ~/.zshrc)?
【问题讨论】:
-
shopt不是zsh命令,尽管setopt inc_append_history应该是您需要的选项。您还应该使用HIST_IGNORE_ALL_DUPS来防止重复条目,而不是尝试自己过滤列表。 -
@chepner。好的,谢谢,但为什么我必须在我可以访问
shared history的窗格中键入命令history。实际上,如果我在两个窗格之一中键入历史记录(假设我在一个窗口中有 2 个窗格),然后,我可以访问 命令历史记录在另一个窗格上完成。如何规避此问题并避免系统地键入命令history。
标签: terminal zsh history iterm2 zshrc