【问题标题】:iTerm2 - zsh - keep history of commands when opening a new paneiTerm2 - zsh - 打开新窗格时保留命令历史记录
【发布时间】: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


【解决方案1】:

你可以使用:

 setopt share_history

根据man zshoptions

此选项既可以从历史文件中导入新命令,也可以将您键入的命令附加到历史文件中(后者类似于指定 INC_APPEND_HISTORY,如果此选项有效,则应将其关闭)。

【讨论】:

    猜你喜欢
    • 2021-04-12
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-09
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多