我想清除特定tmux窗格中的所有滚动历史。


当前回答

如果使用clear清除屏幕,可以检查是否设置了TMUX,并相应地创建别名。

把这个放在你的。bashrc中:

if [[ $TMUX ]]; then
  alias clear='clear && tmux clear-history'
fi

其他回答

为什么不呢?bind -n C-l send-keys C-l

发现这在TMUX 2.6中工作得最好,清除屏幕,滚动,但保持提示后显示。

使用ctrl - l

bind-key -n C-l send-keys C-l \; send-keys -R \; clear-history

Ctrl-L在控制台应用程序中用于重绘屏幕。我发现当绑定到send-keys -R时,它会导致方向键在某些应用程序(如vim, mc)中不再正常工作。

为了在控制台应用程序中保留重绘功能,我使用了:

bind-key -n C-l if-shell -F '#{alternate_on}' 'send-keys C-l' 'send-keys -R C-l; clear-history'

这需要打开tmux选项的备用屏幕(默认情况下是这样)。

这个问题已经困扰我很久了。这是我能想到的最好的。把这个放到你的.tmux.conf文件中:

bind -n C-k clear-history

这将ctrl-k绑定到tmux clear-history命令。bind后的-n使您不必发出tmux命令前缀(默认情况下是ctrl-b)。我使用bash,所以ctrl-l已经相当于在命令行输入“clear”。使用这两个键,我得到了一个很好的ctrl-l, ctrl-k组合,它将所有滚动缓冲区移出屏幕(“clear”),然后删除所有历史(tmux“clear-history”命令)。

它不像Terminal、iTerm或Konsole的一键组合来清除,但它比一直输入清除历史记录要好得多。

如果你想结合CTRL-L加上clear-history,添加到你的~/.tmux.conf:

bind u send-keys C-l \; run-shell "sleep .3s" \; clear-history

这甚至适用于MySQL shell。