Zsh
如何一鍵清除 tmux 和 zsh 歷史記錄?
如何一鍵清除 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
這將清除螢幕和回滾緩衝區。