How to fix a tmux session messed up by control characters
Every once in awhile, I'll accidentally blast some control codes into my terminal session (either errant coding or accidentally gpg --export
). This sometimes causes my tmux session to loose it's formatting and print control characters into the borders of the tmux windows. All the tmux windows get pretty messed up after than. Even just focusing a window messes up the other windows. The traditional reset tricks for a terminal (reset
, echo [CTRL]+V [CTRL]+C
) don't fix it so I end up logging out of all active sessions and having to restart tmux.
Anyone know of a way to reset/refresh all the tmux panes without terminating tmux ?
There is a detailed explication how to reset many parts of tmux in stack exchange: https://unix.stackexchange.com/questions/49886/tmux-status-bar-corrupted-after-catting-a-binary-file-how-to-reset
For me, often only tmux rename-window myWindowName
and printf '\033]2;%s\007' "$(uname -n)
(set status right) are required.
3 options...
stty sane
reset
-
echo ^v^o
(that's E
Ctrl+B then r should do it. This causes tmux to redraw the entire screen from scratch.
ctrl-b r is not the right answer. The right answer is:
-
ctrl-b shift-D
to get a list of the attached sessions - select the session that you were using when you messed up the screen, and press Enter to detach it (or iterate through this list and detach from all sessions, if you prefer)
- if detached from all sessions in #2, then
tmux attach -t
again to attach a brand new session. This will get rid of the problematic session without having to terminate tmux.