我正在使用tmux和iTerm2。
当我在bash时使用Ctrl-L清除屏幕,但在我拖尾服务器日志时不起作用。我该如何解决这个问题?
答案 0 :(得分:14)
您可以使用send-keys -R
清除当前缓冲区,但请记住,在该缓冲区内运行的应用程序不会注意到缓冲区内容已被擦除。
答案 1 :(得分:3)
Ctrl-L绑定到readline
命令。但是,在运行用于记录日志的命令时,bash
未接收键盘输入。您可以使用Ctrl-Z暂停尾部,使用Ctrl-L清除屏幕,然后使用fg
恢复尾部。
这与tmux
无关;我认为tmux
没有像clear-pane
命令那样的东西,而是依靠shell为你处理它。
答案 2 :(得分:2)
在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"
将此添加到~/.tmux.conf
,然后您可以执行CTRL+l
,然后将所需的密钥和命令发送到终端以自动执行。
reset && fg
以空格为前缀,将其从历史记录中排除。
> /dev/null
会停止显示原始tail命令,但这可能很有用,因此如果要在清除后查看它,可以将其删除。