5 votos

¿Cómo puedo obtener 256 colores en la Terminal por defecto a través de SSH?

Hay muchas preguntas similares, pero no encuentro nada que coincida exactamente.

Estoy utilizando el Terminal por defecto (en Yosemite) para SSH en una VM. El terminal de la VM está configurado para usar TERM=xterm-256color correctamente, y 256 colores funciona localmente en la VM con la misma configuración del terminal, pero los colores no lo harán a través de la conexión SSH. ¿Alguien tiene alguna idea de lo que se necesita para conseguir Terminal para tratar la salida como secuencias normales de 256 colores?

Todo lo que quiero aquí es averiguar por qué los códigos de escape de 256 colores son ignorados en Terminal.app cuando vienen a través de una conexión SSH. Y, por supuesto, conseguir que deje de ignorar las secuencias de escape.


Posiblemente información excesiva:

La VM está ejecutando Windows 7, el shell es bash en cygwin, el servidor ssh es bitvise.

Estoy viendo 3 casos -- localmente en OSX bash nativo en Terminal.app, localmente en la VM bash en MinTTY, y en la VM vía SSH en Terminal.app.

infocmp xterm-256color produce resultados idénticos en los tres casos, y tput colors informa 256 en todos los casos.

(tput setaf 200 && echo pink) > pink produce resultados idénticos en los tres casos:

$ hexdump -C pink
00000000  1b 5b 33 38 3b 35 3b 32  30 30 6d 70 69 6e 6b 0a  |.[38;5;200mpink.|
00000010

cat pink ya sea en Terminal.app (localmente, no SSHed en cualquier lugar) o en MinTTY en la VM imprime el texto rosa esperado. cat pink en Terminal.app mientras se está conectado por SSH a la VM produce un texto gris claro por defecto.

La conexión SSH se configura con EscapeChar none por lo que los datos deberían llegar limpios de binarios (el cambio de esta configuración no supuso ninguna diferencia).

Las preferencias en Terminal.app están configuradas para informar como xterm-256color aunque no creo que eso suponga ninguna diferencia.

¿Alguna idea de lo que está comiendo la secuencia de escape a fallar? No estoy usando nada más que bash plain ol para las conchas, no screen o tmux (a menos que Terminal.app lo utilice de forma automática/interna).

2voto

danwyand Puntos 98

Bah... la parte culpable era el servidor SSH. No sé por qué y no pude encontrar un lugar para deshabilitar el comportamiento (excepto para ir completa terminal tonto que tenía sus propios problemas), pero el viejo openssh consigue el trabajo hecho.

0voto

penne12 Puntos 126

El terminal sólo admite 16 colores. Yo recomendaría usar un cliente de terminal diferente, como iTerm2 .

Otra forma de utilizar esto programa para que el terminal muestre todos los colores.

[En iTerm 2] La forma recomendada es poner el tipo de terminal a xterm-256color en Preferencias->Perfiles->Terminal->Tipo de terminal. También puede necesitar poner set background=light o set background=dark en su .vimrc. Otra técnica es descrita por Kevin Coylar en esta entrada del blog sobre Pretty Vim Color Schemes in iTerm2.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X