Al igual que muchos emuladores de terminales, Terminal emula la mayor parte de un VT100, además de algunas características de los terminales más nuevos, y algunas extensiones comunes de xterm y otros emuladores.
No existe un archivo terminfo que corresponda exactamente a Terminal, pero la coincidencia más cercana solía ser xterm-color
que representa una rama más antigua de xterm. Sin embargo, en versiones recientes Terminal es más compatible con xterm y xterm-256color
es el nuevo valor por defecto para el TERM
variable de entorno.
En Preferencias > Configuración > [perfil] > Avanzado > Emulación hay un menú emergente Declarar el terminal como: que establece el valor de TERM
(y eso es todo lo que hace: no altera las funciones que soporta Terminal). Si está utilizando un Mac que ha actualizado desde una versión anterior del sistema operativo, es posible que desee/necesite actualizar la configuración para que coincida con el nuevo valor predeterminado recomendado si todavía está configurado como xterm-color
. Utilizando xterm-color
no es recomendable y es posible que cause problemas porque no es tan parecido al conjunto de características actuales de Terminal.
A pesar de que las instalaciones de ncurses deberían incluir todos los archivos terminfo, algunas distros de Linux no lo hacen, y en particular algunas de ellas omiten xterm-256color
. Si este es el caso, verás que los programas se quejan de diversas maneras por no poder encontrarlo, y la solución es instalar todo el conjunto de archivos terminfo, o al menos todos los xterm.
Si xterm-256color
no está disponible, lo siguiente mejor es xterm-16color
, seguido de xterm
. Estos tres son compatibles y representan la versión actual de xterm con números decrecientes de colores soportados ( xterm
sólo declara los ocho colores ANSI básicos, aunque muchos programas simplemente lo ignoran y asumen que se admiten dieciséis, pero xterm-16color
es el que debe elegir si quiere declarar explícitamente la compatibilidad con dieciséis colores).
Es difícil decir exactamente qué podría estar causando el problema que estás viendo, pero lo primero que debes probar es ejecutar el infocmp
en el host remoto para ver qué dice. Eso le dirá qué terminfo está esperando y si fue encontrado.
Si es un problema genérico de ncurses o terminfo, es probable que ocurra con otros programas, como vim. Podrías intentar ejecutar vim o less, por ejemplo, para comparar comportamientos. Si te sientes motivado, podrías ejecutar vttest http://invisible-island.net/vttest/ en el host remoto y comprueba que Terminal responde adecuadamente a las pruebas de dibujo de atributos de texto, cambio de tamaño de la pantalla y cambio a/de la pantalla alternativa.
Cuando se cambia el tamaño de una ventana de terminal, el programa de terminal lo notifica al dispositivo tty, que envía un SIGWINCH
a los procesos conectados a ella. Los programas se encargan de responder a la señal de forma adecuada. Una cosa que hay que comprobar es si la LINES
y COLUMNS
las variables se actualizan en bash cuando se cambia el tamaño de la ventana de la terminal. Si eso funciona, entonces el mecanismo de señales se está comportando correctamente.
Otra posibilidad es que el programa no esté cambiando a/desde la pantalla alternativa correctamente (lo que podría ser causado por tener un terminfo incompatible seleccionado). Puede comprobar el Ver > Ocultar/Mostrar pantalla alternativa para ver qué pantalla está activa en ese momento. Si muestra la pantalla equivocada, puedes intentar cambiarla manualmente con la opción de menú y ver si eso soluciona el problema.