Есть ли способ перерисовать окно tmux при переключении меньшего монитора на больший?



допустим, вы подключаетесь к удаленному серверу через ssh с терминалом.приложение. Когда вы "подключаете tmux" с большим монитором разрешения от меньшего, который вы ранее запустили tmux, он рисует точки вокруг консоли. Он не соответствует новому размеру окна. Есть ли способ перерисовать и очистить окно? CTRL+L или CTRL -B + R не помогает. Я не мог найти ни одного подходящего командования над человеком.



% tmux -V
tmux 1.5
412   6  

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).

, который сказал просто:

  1. отсоединить от сеанса tmux
  2. Run resize команда linux
  3. повторное подключение к сеансу 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

    Ничего не найдено.