我将 tmux 与 iTerm2 一起使用。
使用 Ctrl-L 清除屏幕在我使用 bash 时有效,但在我跟踪服务器日志时无效。我该如何解决?
您可以使用清除当前缓冲区,send-keys -R
但请记住,在该缓冲区内运行的应用程序不会注意到缓冲区内容已被擦除。
在 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 命令,但这可能很有用,因此如果您想在清除后查看它,可以将其删除。
Ctrl-L 绑定到一个readline
命令。但是,当您运行跟踪日志的命令时,bash
不会接收键盘输入。您可以使用 Ctrl-Z 暂停尾部,使用 Ctrl-L 清除屏幕,然后使用 恢复尾部fg
。
这独立于tmux
; 我不认为tmux
有任何类似clear-pane
命令的东西,而是依靠外壳为您处理。