如何在拖尾日志时清除tmux屏幕?

Sat*_*ish 15 iterm tmux

我正在使用tmux和iTerm2.

当我在bash时使用Ctrl-L清除屏幕,但在我拖尾服务器日志时不起作用.我该如何解决?

jju*_*kel 14

您可以使用清除当前缓冲区,send-keys -R但请记住,在该缓冲区内运行的应用程序不会注意到缓冲区内容已被擦除.

参考

  • 我这样做:`bind l send-keys -R; 显示"已清除" (3认同)
  • 这是最后一个对我真正有效的透明屏幕,就像OS X上Terminal.app中的CMD-k:`bind -n Ck send-keys -R \; 发送键Cl \; 清除历史记录` (2认同)

che*_*ner 5

Ctrl-L 绑定到一个readline命令。但是,当您运行跟踪日志的命令时,bash没有接收键盘输入。您可以使用 Ctrl-Z 暂停尾部,使用 Ctrl-L 清除屏幕,然后使用 恢复尾部fg

这独立于tmux; 我不认为tmux有任何类似clear-pane命令的东西,而是依靠外壳来为您处理。


Phi*_*ilT 5

在 OSX(终端,我相信 iTerm2)中,CMD+K 清除并删除回滚,但我不确定这在尾随或在 tmux 中是否有效。

几个链接可能有你的答案:

此外,@chepner 建议暂停该命令,这让我有了将其添加为键绑定的想法(注意:我已经在 Linux 上对此进行了测试,但我没有 OSX。第一个链接似乎表明clear-history可能有效):

bind-key -n C-l send-keys C-z \; send-keys " reset && fg > /dev/null" \; send-keys "Enter"
Run Code Online (Sandbox Code Playgroud)

将此添加到您的~/.tmux.conf然后您可以执行CTRL+l,这会将所需的键和命令发送到终端以使其自动化。

reset && fg 以空格为前缀以将其从历史记录中排除。

> /dev/null站所显示的原尾命令,但如果你想看到它清除后,这可能是有用的,可以去掉。