Accidentalmente arruino mi terminal tmux después catde crear un archivo binario. Ahora mi tmuxestá en mal estado. Separar y volver a unir no ayuda, ni tampoco volver a dibujar (Cb r). La ejecución resetsolo vuelve a dibujar el panel activo, no el resto. Correr ssty sanedentro o fuera tmuxtampoco ayuda.

Dentro de cada panel, tengo comentarios normales de lo que escribo (la llamada inicial de resetinmediatamente después de que el terminal se estropeó resolvió esto), pero parece que no puedo arreglar la barra de estado.
En gnome-terminal, cada actualización de la barra de estado lleva a la barra de estado a crecer (ver captura de pantalla arriba). Por ejemplo, esto sucede cuando ejecuto una nueva aplicación, cuando cambio paneles o cuando cambio el tamaño de un panel. Forzar un redibujo (Por C-b r, al ejecutar reseto mediante el menú gnome-terminal) reduce la barra de estado a una sola línea, pero permanece dañada.
En xterm, la barra de estado permanece dentro de una línea, pero permanece corrupta como se muestra en la imagen.
Estoy usando tmux 1.5.
- ¿Cómo arreglo mi
tmuxterminal?
Este informe de error de 2008 parece describir el mismo problema, pero se marcó como solucionado. No sé en qué versión se solucionó, pero tmux 1.5 debería incluir una solución de 2008.

Control+b+:y luegoset -g status-right "#H"establecer el derecho de estado al nombre de host.Respuestas:
Intente renombrar la ventana 4
(Eso es una coma en el medio)
O: Control+b
:rename-window myNewnamefuente
ctrl+u, por lo que la secuencia completa esctrl+b , ctrl+u newnamebyobu(f8, <newname>)Control-unecesario?Control-,ya está cambiando de nombre ¿verdad? Aunque puedo confirmar que era necesario en mi caso, ¿es algún tipo de reinicio?Necesita dos secuencias de comandos para limpiar el desorden:
Primero, ejecute esto en la ventana ilegible (esto funciona incluso cuando está dentro
ssh):stty sane; printf '\033k%s\033\\\033]2;%s\007' "`basename "$SHELL"`" "`uname -n`"; tput reset; tmux refreshLuego ejecute esto en la computadora que funciona
tmux(funciona dentro y fuera detmux):tmux list-windows -a | while IFS=: read -r a b c; do tmux set-window-option -t "$a:$b" automatic-rename on; doneExplicado en detalle
Esto fue ensamblado para abordar todos los bits encontrados en otras respuestas y comentarios. Actualmente parece que solo queda un poco con el segundo comando. (Ver en el "bit faltante" a continuación).
Para entender cómo funciona esto, primero eliminemos la línea de estado de
tmuxy eltty. Luego lo corregimos nuevamente, usando un método que siempre debe estar disponible (a diferencia del comandoreset).Cómo hacer que un
tmuxterminal (se suponeUTF-8) sea inutilizableExplicado:
stty -echomata la respuesta de tipo terminalprintf '\016'hace unSO, así que estás en el conjunto de caracteres alternativoprintf '\033]2;%s\007' 'right status text'establece el estado correcto, en este caso$'\355', que expone un error de presentaciónprintf '\033k%2000s\033\\' $'\302\217'establece el nombre del título de la ventanaEsta podría ser la combinación que puede ver en el terminal después de que un comando interactivo se bloqueó y volvió a caer en el shell. (Con
/bin/catusted no puede provocarstty -echoIMHO, pero los comandos interactivos como por lovimgeneral configuran esto).Ahora limpia este desastre
Explicado:
stty saneestablece parámetros de terminal "sanos" para que recuperes tu eco mientras escribesprintf '\033k%s\033\\' "$(basename "$SHELL")"configura el título de la ventana de nuevo a la normalidad. Puede usartmux rename-window "$(basename "$SHELL")"alternativamente, sin embargo,tmux rename-windowestá limitado atmuxdonde la secuencia de escape siempre funciona.printf '\033]2;%s\007' "$(uname -n)"restablece el derecho de estado para que se muestre como predeterminado. (Tenga en cuenta que no debe usarlotmux set status-right "something", ya que solo genera elpane titleque se corrompió, por lo questatus-rightsolo expone algún error de presentación. También tenga en cuenta que no encontré untmuxcomando para establecer el título del panel directamente).tput resetrestablece el terminal, en caso de que esto se haya estropeadotmux refreshactualiza la pantalla para deshacerse de otros desechos que podrían haber aparecidoPedazo perdido
La
printf '\033k%s\033\\' "$(basename "$SHELL")"pierde la capacidad estándar detmuxpresentar el comando actual en el área de estado de la izquierda. Después de queprintf '\033k%s\033\\' "something"se ejecutó esta habilidad se perdió y no encontré una buena manera, sin embargo, cómo recuperarla como estaba antes.Pero, como se señala en los comentarios a continuación, puede activar una función similar
tmuxcomo reemplazo con la siguientetmuxconfiguración:Haga esto en la
tmuxlínea de comando, que se puede alcanzar en la ventana actual con "Escape":(donde "Escape" es sutmuxtecla de comando) y luego ingrese el comando.O ejecute
tmux set-window-option automatic-rename onen su terminal actual, pero esto falla en caso de que no esté directamente en el nivel de shell correcto, por ejemplo, no funciona dentro desudoossh.O abra otra ventana en la
tmuxsesión actual y ejecute el siguiente comando:O abra otro shell en la computadora que se está ejecutando
tmuxy ejecute el siguiente comando (esto está fuera de tmux):PD: Gracias a todos los que ayudaron a armar esta solución.
fuente
uname -nlugar dehostname -s.hostnamees peligroso en surootcontexto, ya que podría terminar con el cambio de nombre de su host-sen Linux / Unix, dondehostnameno hay opciones de grok.stty saneparte me ayudó cuando mi terminal se estropeó y no mostró nada. ¡Gracias!set-window-option automatic-rename.El problema específico que está viendo tiene que ver con el nombre / título de la ventana 4. Una combinación de ser demasiado largo (obviamente) y contener caracteres extraños que hacen que tmux lo mida como más corto (por lo que no puede limitar adecuadamente la barra de estado al ancho de la pantalla) No estoy seguro de cómo restablecerlo (en el mío sigue el nombre del proceso en primer plano), es posible que deba cerrar la ventana.
fuente
^b - ,Ctrl-bentonces,.Backspacedurante un minuto para borrar el nombre actual. Para mí, la retroalimentación visual eventualmente dejó en claro que todo el antiguo nombre había sido borrado.Ctrl-b:rename-window <nombre va aquí>; esto usa el sistema de comando tmux en lugar del atajo de teclado para ese comando.simplemente haz esto
$ reset && tmux rename-window <new_window_name>fuente
Me arregló esto cuando algo más que el nombre de la ventana estaba dañado y no podía molestarme en averiguar qué era.
fuente
tmuxpodría constituir solo parte del problema. Puede que tenga que invocarstty saneen la línea de comando. Esto restablece los controladores TTY en el núcleo a un conjunto de valores predeterminados que generalmente le permiten continuar. Si los controladores TTY están lo suficientemente desordenados, es posible que deba escribirstty sane"a ciegas", es decir, sin comentarios en pantalla.fuente
stty sanetampoco resuelve el problema. Tengo comentarios en pantalla, dentro de cada uno de lostmuxpaneles puedo escribir y tener comentarios de manera normal, pero tan pronto como tmux necesita dibujar algo (por ejemplo, ejecutar una nueva aplicación, cambiar o cambiar el tamaño de los paneles) la barra de estado se mueve a los paneles ...Intenta recargar tu archivo de configuración?
Ctrlb, luego:
:source-file ~/.tmux.conffuente
para solucionar el problema para mí:
Acabo de eliminar el panel y la ventana del problema, y creé una nueva ventana y panel.
En el panel de problemas, CTRL+ AXy CTRL+ AC.
fuente