Есть ли способ перерисовать окно tmux при переключении меньшего монитора на больший?
допустим, вы подключаетесь к удаленному серверу через ssh с терминалом.приложение. Когда вы "подключаете tmux" с большим монитором разрешения от меньшего, который вы ранее запустили tmux, он рисует точки вокруг консоли. Он не соответствует новому размеру окна. Есть ли способ перерисовать и очистить окно? CTRL+L или CTRL -B + R не помогает. Я не мог найти ни одного подходящего командования над человеком.
% tmux -V
tmux 1.5
6 ответов:
tmux ограничивает размеры окна до наименьшего из каждого измерения во всех сеансах, к которым присоединено окно. Если бы это не было сделано, не было бы разумного способа отобразить всю область окна для всех подключенных клиентов.
самое простое, что нужно сделать, это отсоединить любые другие клиенты от сеансов при подключении:
tmux attach -dкроме того, вы можете переместить любые другие клиенты в другой сеанс перед подключением к сессия:
takeover() { # create a temporary session that displays the "how to go back" message tmp='takeover temp session' if ! tmux has-session -t "$tmp"; then tmux new-session -d -s "$tmp" tmux set-option -t "$tmp" set-remain-on-exit on tmux new-window -kt "$tmp":0 \ 'echo "Use Prefix + L (i.e. ^B L) to return to session."' fi # switch any clients attached to the target session to the temp session session="" for client in $(tmux list-clients -t "$session" | cut -f 1 -d :); do tmux switch-client -c "$client" -t "$tmp" done # attach to the target session tmux attach -t "$session" } takeover 'original session' # or the session number if you do not name sessionsэкран снова уменьшится, если меньший клиент переключится на сеанс.
существует также вариант, где вы только "взять на себя" окно (связать окно в новый сеанс, установить
aggressive-resize, и переключить любые другие сеансы, которые имеют это окно активным в какое-то другое окно), но это сложнее сценарий в общем случае (и отличается от "выхода", так как вы хотите, чтобы разорвать связь окна или убить сеанс вместо того, чтобы просто отсоединиться от сессия.)
вы всегда можете нажать CTRL -B + SHIFT -D чтобы выбрать, какой клиент вы хотите отсоединить от сеанса.
tmux перечислит все сеансы с их текущим измерением. Затем вы просто отсоединяетесь от всех сеансов меньшего размера.
более простое решение на последних версиях tmux (проверено на 1.9) теперь вы можете сделать :
tmux detach -a
-aдля всех других клиентов в этом сеансе, кроме текущеговы можете псевдоним его в вашем .[bash|zsh]rc
alias takeover="tmux detach -a"рабочий процесс: вы можете подключиться к вашей сессии нормально, и если вас беспокоит другой сеанс, который заставил ваш размер окна tmux вы можете просто позвонить
takeover.
Я просто столкнулся с этой проблемой и наткнулся на разные ситуации. Хотя это, вероятно, просто единорог,я думал, что выложу его.
У меня был один сеанс, который был меньше, и я заметил, что размеры шрифтов были разными: меньший сеанс имел меньшие шрифты. По-видимому, я по какой-то причине изменил размеры шрифта окна.
Так что в OS X, я просто сделал
Cmd-+на сеансе меньшего размера, и он вернулся на место.
другие ответы не помогли мне, поскольку у меня был только клиент, подключенный (предыдущий, который начал сеанс, уже был отсоединен).
чтобы исправить это, я последовал за ответ!--4-->здесь (Я не использовал xterm).
, который сказал просто:
- отсоединить от сеанса tmux
- Run
resizeкоманда linux- повторное подключение к сеансу tmux
ps ax | grep tmux 17685 pts/22 S+ 0:00 tmux a -t 13g2 17920 pts/11 S+ 0:00 tmux a -t 13g2 18065 pts/19 S+ 0:00 grep tmuxубить другого.
Comments