para - tmux split
¿Hay alguna forma de volver a dibujar la ventana tmux al cambiar el monitor más pequeño a uno más grande? (6)
Digamos que se está conectando a un servidor remoto a través de ssh con Terminal.app. Cuando se "conecta tmux" con un monitor de resolución más grande de uno más pequeño, previamente inició tmux, dibuja puntos alrededor de la consola. No se ajusta al nuevo tamaño de la ventana. ¿Hay alguna forma de volver a dibujar y limpiar la ventana? CTRL + L o CTRL - B + R no ayuda. No pude encontrar ninguna orden adecuada sobre el hombre.
% tmux -V
tmux 1.5
Acabo de encontrarme con este problema y me encontré con una situación diferente. Aunque es probable que solo sea un unicornio, pensé que lo extendería.
Tuve una sesión que fue más pequeña y noté que los tamaños de fuente eran diferentes: la sesión más pequeña tenía las fuentes más pequeñas. Aparentemente, había cambiado el tamaño de las fuentes de las ventanas por alguna razón.
Así que en OS X, acabo de hacer Cmd-+
en la sesión de menor tamaño, y se volvió a colocar en su lugar.
Las otras respuestas no me ayudaron, ya que solo tenía un cliente adjunto (la anterior que inició la sesión ya estaba separada).
Para solucionarlo seguí la respuesta here (no estaba usando xterm).
Lo que simplemente dijo:
- Desacoplar de la sesión tmux
- Ejecutar el comando
resize
linux - Reattach to tmux sesion
Siempre puede presionar CTRL - B + MAYÚS - D para elegir qué cliente desea separar de la sesión.
tmux listará todas las sesiones con su dimensión actual. Entonces simplemente te separas de todas las sesiones de menor tamaño.
Una solución más simple en versiones recientes de tmux (probada en 1.9) que ahora puede hacer:
tmux detach -a
-a
es para todos los demás clientes en esta sesión excepto el actual
Puedes alias en tu. [Bash | zsh] rc
alias takeover="tmux detach -a"
Flujo de trabajo: puede conectarse a su sesión normalmente, y si le molesta otra sesión que redujo el tamaño de la ventana de su tmux, simplemente puede llamar la takeover
.
tmux limita las dimensiones de una ventana a la más pequeña de cada dimensión en todas las sesiones a las que se adjunta la ventana. Si no lo hiciera, no habría una forma sensata de mostrar el área de la ventana completa para todos los clientes adjuntos.
Lo más fácil es separar a cualquier otro cliente de las sesiones cuando adjunta:
tmux attach -d
Alternativamente, puede mover cualquier otro cliente a una sesión diferente antes de adjuntar a la sesión:
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
La pantalla se reducirá de nuevo si un cliente más pequeño cambia a la sesión.
También hay una variación en la que solo "toma el control" de la ventana (vincule la ventana a una nueva sesión, establezca aggressive-resize
y cambie cualquier otra sesión que tenga esa ventana activa a alguna otra ventana), pero es más difícil hacer un script en el caso general (y diferente a "salir", ya que querría desvincular la ventana o eliminar la sesión en lugar de simplemente separarse de la sesión).
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
mata al otro