Disons que vous vous connectez à un serveur distant via SSH avec Terminal.app. Lorsque vous "attachez tmux" avec un moniteur de résolution supérieure à celui que vous avez précédemment lancé, tmux dessine des points autour de la console. Cela ne correspond pas à la nouvelle taille de la fenêtre. Est-il possible de redessiner et de nettoyer la fenêtre? CTRL+L ou CTRL-B + R n'aide pas. Je ne pouvais trouver aucune commande appropriée sur l'homme.
% tmux -V
tmux 1.5
tmux limite les dimensions d'une fenêtre au plus petit de chaque dimension pour toutes les sessions auxquelles la fenêtre est attachée. Sinon, il n'y aurait aucun moyen judicieux d'afficher toute la zone de la fenêtre pour tous les clients attachés.
La chose la plus simple à faire est de détacher tout autre client des sessions lorsque vous attachez:
tmux attach -d
Vous pouvez également déplacer tout autre client vers une session différente avant de l’attacher à la session:
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="$1"
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
L'écran sera de nouveau réduit si un client plus petit bascule vers la session.
Il existe également une variante dans laquelle vous "ne prenez" que la fenêtre (liez la fenêtre à une nouvelle session, définissez aggressive-resize
et changez les autres sessions pour lesquelles cette fenêtre est active), mais c'est plus difficile. script dans le cas général (et différent de "quitter" puisque vous voudriez dissocier la fenêtre ou tuer la session au lieu de simplement se détacher de la session).
Vous pouvez toujours appuyer sur CTRL-B + SHIFT-D choisir le client que vous souhaitez détacher de la session.
tmux listera toutes les sessions avec leur dimension actuelle. Ensuite, il vous suffit de vous détacher de toutes les sessions plus petites.
Une solution plus simple sur les versions récentes de tmux (testée sur 1.9), vous pouvez maintenant faire:
tmux detach -a
-a
est pour tous les autres clients de cette session, sauf le client actuel
Vous pouvez l'alias dans votre. [Bash | zsh] rc
alias takeover="tmux detach -a"
Flux de travail: vous pouvez vous connecter à votre session normalement et si vous êtes dérangé par une autre session qui vous oblige à réduire la taille de votre fenêtre tmux, vous pouvez simplement appeler takeover
.
Les autres réponses ne m'ont pas aidé car je n'avais qu'un client attaché (la précédente qui avait démarré la session était déjà détachée).
Pour résoudre ce problème, j'ai suivi la réponse ici (je n'utilisais pas xterm).
Ce qui a simplement dit:
resize
linuxJe viens de rencontrer ce problème et suis tombé sur une situation différente. Bien que ce ne soit probablement qu'une Licorne, je pensais l'exposer.
J'ai eu une session qui était plus petite, et j'ai remarqué que les tailles de police étaient différentes: la plus petite session avait les polices plus petites. Apparemment, j'avais changé la taille de la police de la fenêtre pour une raison quelconque.
Donc, sous OS X, je viens de faire Cmd-+
sur une session de plus petite taille, qui est revenue à sa place.