tmux, Vim y Solarized

19

Local

Navegando por tmux , Vim y Solarized puedo encontrar muchas quejas sobre 256 colores y la "experiencia del usuario". Bueno, tengo el "problema" opuesto, es decir, Vim funciona bien con un tema Solarizado completo solo en tmux .

Antecedentes

He estado ajustando y ajustando un poco ahora con el esquema de color de mi terminal Ubuntu y Guake y casi llego a la perfección que se alcanza cuando estoy usando tmux , lo que a su vez significa siempre. Ahora estoy tratando de entender por qué sucede esto.

A continuación, hay dos terminales, uno a la izquierda ejecuta solo Vim (que muestra la corriente .vimrc) mientras que el otro ejecuta Vim dentro de una sesión tmux . Como puede ver claramente, solo en la sesión de tmux las fuentes están en negrita, lo que supongo que es correcto (¿o no?).

ingrese la descripción de la imagen aquí

Pregunta

¿Por qué tmux permite la fuente en negrita mientras que el terminal, donde tmux se está ejecutando, no lo hace? ¿Es un error o una característica?

Atcold
fuente
¿Cuál es la salida de echo $TERMdentro y fuera de tmux?
jasonwryan
tmux dice screenmientras que la terminal dice xterm:)
Atcold
@jasonwryan leyó la otra pregunta del OP aquí y la respuesta de Gilles a una similar aquí . Aparentemente $TERMno es tan relevante.
terdon
@terdon es material en este caso: tmux requiere que el término esté configurado en pantalla (o una variante) y xterm es, por defecto, un término de 8 colores. Es por eso que el OP está viendo la diferencia.
jasonwryan
Ponga xterm*termName: xterm-256coloren su ~/.Xresourcesy ver si eso hace la diferencia ...
jasonwryan

Respuestas:

22

Respuesta corta

Es un error

Respuesta completa

Parece que la visualización "correcta" es la de la izquierda, donde el tipo de letra negrita están no prestados. Por lo que pude entender ( aquí está la referencia), el atributo en negrita se usó, originalmente, para establecer la versión resaltada de los 8 colores base.

Históricamente, ha habido una correspondencia uno a uno entre las versiones en negrita de los 8 colores ANSI predeterminados y las versiones brillantes de los 8 colores predeterminados. En el pasado, cuando un programa de color exigía la visualización de texto en negrita, probablemente era más fácil para los emuladores de terminal mostrar una versión más brillante del color del texto (y esperar que el usuario lo interprete como negrita) que mostrar un tipografía con un peso en negrita.

Básicamente, lo que está sucediendo aquí es que, para usar la paleta Solarizada completa , con el naranja , el púrpura y todos los niveles de gris , los colores se llaman con el atributo en negrita , que a su vez se refiere a los 8 colores alternativos del Paleta ANSI.

Terminal entiende esto correctamente y muestra el naranja y el comentario en gris en la composición normal , mientras que tmux les agrega una fuente en negrita innecesaria . En conclusión, el lado izquierdo es correcto mientras que el derecho no lo es.

Pregunta 2

¿Hay alguna manera de deshabilitar la representación en negrita de tmux ?
Todavía tengo que investigar un poco al respecto, y actualizaré esta respuesta tan pronto como encuentre algo.

Respuesta 2

¡Y aquí tenemos la solución! :)

Para que tmux se comporte correctamente, debemos llamarlo y decirle que estamos en un entorno habilitado para 256 colores.

TERM=xterm-256color /usr/bin/tmux

Por conveniencia podríamos aliasesto (es decir, usted agrega alias tmux="<the line above>"a su ~/.bashrc).

tmux interpreta correctamente los colores "negrita-alternativa" sin negrita

Llamar tmuxcomo tmux -2, para forzar a tmux a ejecutarse con soporte de 256 colores (en lugar de redefinir la TERMvariable ambiental) no permitirá la interpretación correcta de los 8 colores "negrita-alternativa" (es decir, la variante más brillante también tendrá una composición en negrita). Por lo tanto, le recomiendo usar la solución aquí arriba para tener tanto una correcta interpretación de 256 colores y los colores no llamativos "negrita-alternativas".

Atcold
fuente
mucho amor hombre !!
shxfee