偶尔,我会不小心将一些控制代码输入到我的终端会话中(无论是错误的编码还是意外的gpg --export
)。这有时会导致我的 tmux 会话丢失其格式并将控制字符打印到 tmux 窗口的边框中。之后,所有 tmux 窗口都会变得非常混乱。即使只是聚焦一个窗口也会弄乱其他窗口。传统的终端重置技巧(reset
,echo [CTRL]+V [CTRL]+C
)无法解决这个问题,所以我最终退出所有活动会话并不得不重新启动 tmux。
有人知道在不终止 tmux 的情况下重置/刷新所有 tmux 窗格的方法吗?
答案1
在 stack exchange 中有关于如何重置 tmux 许多部分的详细解释:https://unix.stackexchange.com/questions/49886/tmux-status-bar-corrupted-after-catting-a-binary-file-how-to-reset
对我来说,通常只需要tmux rename-window myWindowName
和(设置状态正确)。printf '\033]2;%s\007' "$(uname -n)
答案2
Ctrl+B然后r就可以了。这会导致 tmux 从头开始重新绘制整个屏幕。
答案3
3 个选项...
stty sane
reset
echo ^v^o
(这是 E
答案4
ctrl-b r 不是正确答案。正确答案是:
ctrl-b shift-D
获取附加会话的列表- 选择您在弄乱屏幕时使用的会话,然后按 Enter 将其分离(或者,如果您愿意,可以遍历此列表并从所有会话中分离)
- 如果在 #2 中与所有会话分离,则
tmux attach -t
再次附加一个全新的会话。这将摆脱有问题的会话,而无需终止 tmux。