¿Cómo hago que el esquema de color solarizado funcione con gnome-terminal, tmux y vim?

25

Hay muchas preguntas al respecto, pero es porque hay muchas variables. Tuve que reunir las instrucciones de muchos sitios antes de que esto funcionara.

Primero, no pude configurar fácilmente las 16 definiciones de color solarizado en gnome-terminal (lo hice a mano / haciendo clic solo para darme cuenta de que no tenía el orden / mapeo correcto). Una vez que arreglé eso, seguí adelante ...

Luego tuve colores solarizados trabajando en vim OK-ish, pero aparecieron algunos fondos negros extraños en ciertos resaltados. Una vez que arreglé eso, seguí adelante ...

Entonces me di cuenta de que vim fue v. Wonky una vez corriendo dentro de tmux. Esto se discute de forma masiva, pero muy pocas de las respuestas (que en su mayoría dicen acerca de poner TERMa xterm-256colors) trabajó para mí. Finalmente lo arreglé también.

Solarized es una paleta muy agradable (aunque oscurecí el color base más oscuro y aligeré el más claro, ya que prefiero el mayor contraste y encontré el 'blanco' de tmux demasiado amarillo en mi pantalla calibrada, probablemente bien en una pantalla de computadora portátil típica sin calibrar, ya que ' ¡Suele ser demasiado azul!), así que publico esta pregunta con su respuesta para compartir los resultados de mi aprendizaje.

artfulrobot
fuente
Uso xterm-256color (no el terminal GNOME), tmux y vim y no recuerdo haber tenido que saltar a ningún lado cerca de estos aros. Lo único que tuve que hacer fue solarizar el terminal (xterm usa XResources en lugar de perfiles), lo cual fue un poco difícil de entender, agregar solarized.vimy todo estaba listo.
jw013

Respuestas:

24

Solarizado da colores muy específicos. Usted no puede realmente lograr estos colores en una paleta de 256 colores estándar . La única forma en que puede lograr esto es configurando los colores exactos en su emulador de terminal, luego las aplicaciones piensan que solo están usando 16 colores estándar (8 + 8 brillos), pero estos se han asignado con precisión a la paleta Solarized.

El terminal Gnome no proporciona una manera muy fácil de exportar / importar paletas o perfiles, pero puede hacerlo con este script bash:

#!/bin/sh
DARK_BG='#000014141A1A'
# original: DARK_BG='#00002B2B3636'
LIGHTEST='#FFFFFBFBF0F0'
# original: LIGHTEST='#FDFDF6F6E3E3'

gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_background" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/use_theme_colors" --type bool false
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/palette" --type string "#070736364242:#D3D301010202:#858599990000:#B5B589890000:#26268B8BD2D2:#D3D336368282:#2A2AA1A19898:#EEEEE8E8D5D5:$DARK_BG:#CBCB4B4B1616:#58586E6E7575:#65657B7B8383:#838394949696:#6C6C7171C4C4:#9393A1A1A1A1:$LIGHTEST"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/background_color" --type string "$DARK_BG"
gconftool-2 --set "/apps/gnome-terminal/profiles/Default/foreground_color" --type string "#65657B7B8383"

Nótese bien. Aquí he anulado los colores más oscuros y claros de Solarized. Puede usar los originales si lo desea, como se comentó.

Suficientemente bueno. Ahora instale el archivo de colores vim Solarized colocando ese archivo en ~.vim/colors/solarized.vim.

Ahora puedes decirle a Vim que use ese esquema de color colo solarized. Pero esto no funcionó y tuve que decirle a Vim utilizar una paleta de 16 colores, set t_Co=16. Pegué los dos en mi ~/.vimrcarchivo.

Ahora los colores vim estaban funcionando, pero no si se ejecutaba dentro de tmux.

El siguiente bit es muy confuso. La mayoría de los consejos dicen acerca de cómo configurar TERMfuera de tmux xterm-256colors, pero cuando lo hice, tmux ni siquiera comenzó. También me confundió: ¿no dice solarizado que la paleta de 256 colores es una aproximación pobre? Bueno, es confuso, y de todos modos, no estaba funcionando, así que necesitaba otro camino a seguir:

Crea un archivo que /tmp/foocontenga:

xterm-16color|xterm with 16 colors,
    colors#16, use=xterm,

Luego instale esto con sudo tic /tmp/foo

Finalmente, alias de la tmuxsiguiente manera:

alias tmux='TERMINFO=/usr/share/terminfo/x/xterm-16color TERM=xterm-16color tmux -2'

Ahora obtengo exactamente los colores correctos en el terminal, en vim y en vim-inside-tmux. Nótese bien. la -2opción le dice tmuxque use una paleta de 256 colores, lo cual es realmente confuso porque las variables env parecen indicarlo de otra manera ... Realmente no lo sé, y me temo que realmente no me importa escalar ese aprendizaje curva porque ahora tengo una hermosa terminal de color que simplemente funciona.

artfulrobot
fuente
set t_Co=16hizo el truco para mí Antes de configurar esa opción, la iluminación de sintaxis no funcionaba en absoluto.
Koraktor
2
¡Es divertido cuánto trabajo necesita hacer para que 16 colores funcionen en un editor de texto!
Nota: Estoy descubriendo que en Gnome Terminal 3.18.3 (en Ubuntu 16.04) esto ya no funciona, no parece aceptar los colores y usar vim's t_Co = 256 da mejores resultados.
artfulrobot
9

También encontré este proyecto:

https://github.com/sigurdga/gnome-terminal-colors-solarized

Gracias por los consejos :-)

DavidG
fuente
1
Si si y si! Usa este script, no te molestes con todo el pirateo en la respuesta aceptada. Esto "simplemente funciona".
LondonRob
¡Maravilloso! Esto es mucho mejor. Gracias.
wchargin
En algunas instalaciones funciona. En algunos es demasiado azul.
JohnMudd