Zsh

如何一鍵清除 tmux 和 zsh 歷史記錄?

  • August 31, 2021

如何一鍵清除 tmux 歷史(tmux clear-history)和 zsh(zle clear-screen)?

清除螢幕的常用方法是^L,我嘗試將以下內容添加到.tmux.conf

bind -Troot C-l send-keys C-l\; clear-history

所以^L清除螢幕,並清除幾乎所有歷史記錄,除了最後一個螢幕。

隨後^L清除了這一切。

一鍵組合可以達到同樣的效果嗎?

bind -Troot C-l send-keys C-l\; clear-history\; send-keys C-l\; clear-history

不起作用。以下都不是:

bind -Troot C-l send-keys C-l C-l\; clear-history

我最終以與zsh自己不同的方式這樣做:

# ~/.zshrc
clear-scrollback-and-screen () {
 zle clear-screen
 tmux clear-history
}
zle -N clear-scrollback-and-screen
bindkey -v '^L' clear-scrollback-and-screen

僅出於一個原因 - 我在 Vim 中有一個 Cl 映射,偶爾按下正在清除 Vim 螢幕。

但是,該解決方案有一個缺點,它僅適用於外殼程序。

嘗試:

bind -n C-k clear-history

這將 ctrl-k 綁定到 tmux clear-history 命令。綁定後的 -n 使您不必發出 tmux 命令前綴(預設為 ctrl-b)。我使用 bash,所以 ctrl-l 已經相當於在命令行輸入“clear”。使用這兩個鍵,我得到了一個不錯的 ctrl-l、ctrl-k 組合,它將所有滾動緩衝區移出螢幕(“清除”),然後刪除所有歷史記錄(tmux“清除歷史”命令)。

此外,發出send-keys -R重置(清除)螢幕:

bind-key b send-keys -R \; clear-history

這將清除螢幕和回滾緩衝區。

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