Ich habe eine tmux-Sitzung auf einem kleineren Terminal gestartet. Wenn ich dieselbe Sitzung auf einem Monitor mit größerer Auflösung "anhänge", werden Punkte um die Konsole herum gezeichnet. Sie passen nicht in die neue Fenstergröße. Gibt es eine Möglichkeit, das Fenster neu zu zeichnen und zu reinigen? CTRL + L o CTRL - B + R ist nicht hilfreich.
Antworten
Zu viele Anzeigen?tmux begrenzt die Abmessungen eines Fensters auf die kleinste Abmessung in allen Sitzungen, denen das Fenster zugeordnet ist. Wäre dies nicht der Fall, gäbe es keine sinnvolle Möglichkeit, den gesamten Fensterbereich für alle angeschlossenen Clients anzuzeigen.
Am einfachsten ist es, wenn Sie alle anderen Clients von den Sitzungen trennen, wenn Sie die Verbindung herstellen:
tmux attach -d
Alternativ können Sie auch alle anderen Clients in eine andere Sitzung verschieben, bevor Sie sich der Sitzung anschließen:
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
Der Bildschirm wird wieder verkleinert, wenn ein kleinerer Client in die Sitzung wechselt.
Es gibt auch eine Variante, bei der Sie das Fenster nur "übernehmen" (das Fenster mit einer neuen Sitzung verknüpfen, die aggressive-resize
und alle anderen Sitzungen, in denen dieses Fenster aktiv ist, auf ein anderes Fenster umschalten), aber es ist im allgemeinen Fall schwieriger zu skripten (und unterscheidet sich von "exit", da Sie das Fenster entkoppeln oder die Sitzung beenden wollen, anstatt sich einfach von der Sitzung zu lösen).
Eine einfachere Lösung auf neueren Versionen von tmux (getestet auf 1.9) können Sie jetzt tun :
tmux detach -a
-a
gilt für alle anderen Clients in dieser Sitzung außer dem aktuellen Client
Sie können es in Ihrem .[bash|zsh]rc als Alias verwenden
alias takeover="tmux detach -a"
Arbeitsablauf: Sie können sich ganz normal mit Ihrer Sitzung verbinden, und wenn Sie durch eine andere Sitzung gestört werden, die die Größe Ihres tmux-Fensters erzwingt, können Sie einfach takeover
.
Dieser Beitrag steht bei der Suche immer noch an erster Stelle, ist aber nicht mehr gültig. Die beste Antwort finden Sie hier aber die Kurzfassung ist
<c-b>:resize-window -A
- See previous answers
- Weitere Antworten anzeigen