Zsh

共享歷史和非共享歷史

  • January 31, 2021

使用zsh(in tmux),我想使用 訪問會話歷史記錄Up,以及使用Shift+Up(或類似的)訪問會話歷史記錄。

有誰知道如何做到這一點?

假設您的終端輸出Up^[[A

up-line-or-history() {
 zle .set-local-history -n ${#WIDGET:#*global*}  # 0 iff $WIDGET == *global*
 zle .up-line-or-history
}
zle -N up-line-or-history-local up-line-or-history
zle -N up-line-or-history-global up-line-or-history

# Up arrow
bindkey '^[[A' up-line-or-history-local

# Alt + up arrow
bindkey '^[^[[A' up-line-or-history-global

要檢查您的終端在您按下時實際輸出的內容Up,您可以按下Ctrl``V然後Up

有關上述程式碼如何工作的更多資訊,請參閱http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html

引用自:https://unix.stackexchange.com/questions/481646