Como obtenho o esquema de cores solarizado trabalhando com o gnome-terminal, tmux e vim?

25

Há muitas perguntas sobre isso, mas é porque existem muitas variáveis. Eu tive que reunir instruções de vários sites antes de começar a trabalhar.

Primeiro, eu não conseguia configurar facilmente as 16 definições de cores solarizadas no terminal gnome (eu fiz isso manualmente / clicando apenas para perceber que eu não tinha o pedido / mapeamento correto). Depois que eu consertei, segui em frente ...

Depois, solarizei as cores trabalhando no vim OK-ish, mas havia alguns fundos pretos estranhos aparecendo em certos realces. Depois de consertar isso, segui em frente ...

Então eu percebi que o vim foi vício, uma vez rodando dentro do tmux. Esta é maciçamente debatido, mas muito poucas das respostas (que na sua maioria dizem sobre a criação TERMde xterm-256colors) trabalhou para mim. Eu finalmente consertei isso também.

Solarized é uma paleta muito agradável (embora eu tenha escurecido a cor base mais escura e iluminado a mais clara, pois eu prefiro o contraste mais alto e encontrei o 'branco' do tmux muito amarelo na minha tela calibrada - provavelmente em uma tela de laptop não calibrada típica como eles ' geralmente é muito azul!), então estou postando esta pergunta com sua resposta para compartilhar os resultados do meu aprendizado.

artfulrobot
fonte
Eu uso xterm-256color (não terminal GNOME), tmux e vim e não me lembro de ter que pular em qualquer lugar próximo a tantos aros. A única coisa que tive que fazer foi solarizar o terminal (o xterm usa o XResources em vez de perfis), o que foi uma pequena dor para descobrir, adicionar solarized.vime eu estava pronto.
#

Respostas:

24

Solarizado dá cores muito específicas. Você realmente não pode conseguir essas cores em uma paleta de 256 cores padrão . A única maneira de conseguir isso é configurando as cores exatas no emulador de terminal, e os aplicativos pensam que estão usando apenas 16 cores padrão (8 + 8 brights), mas elas foram mapeadas com precisão para a paleta Solarized.

O terminal Gnome não fornece uma maneira muito fácil de exportar / importar paletas ou perfis, mas você pode fazê-lo com 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"

Nb. aqui substituí as cores mais escuras e mais claras do Solarized. Você pode usar os originais, se desejar, como comentado.

Bom o bastante. Agora instalar o arquivo de cores vim Solarizado colocando o arquivo no ~.vim/colors/solarized.vim.

Agora você pode dizer ao Vim para usar esse esquema de cores colo solarized. Mas isso não funcionou e eu tive que dizer ao Vim para usar uma paleta de 16 cores set t_Co=16. Coloquei os dois no meu ~/.vimrcarquivo.

Agora as cores do vim estavam funcionando, mas não se funcionassem no tmux.

Este próximo passo é muito confuso. A maioria dos conselhos diz sobre como configurar o TERMtmux fora xterm-256colors, mas quando o fiz, o tmux nem sequer começava. Também me confundiu: o solarizado não diz que a paleta de 256 cores é uma aproximação ruim? Bem, é confuso e, de qualquer maneira, não estava funcionando, então eu precisava de outro caminho a seguir:

Crie um arquivo /tmp/foocontendo:

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

Em seguida, instale isso com sudo tic /tmp/foo

Por fim, alias da tmuxseguinte maneira:

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

Agora eu obtenho exatamente as cores certas no terminal, no vim e no vim-inside-tmux. Nb. a -2opção diz tmuxpara usar uma paleta de 256 cores, o que é realmente confuso, porque as variáveis ​​env pareceriam dizer o contrário ... eu realmente não sei, e tenho medo de não me interessar em escalar esse aprendizado curva, porque agora tenho um belo terminal colorido que simplesmente funciona.

artfulrobot
fonte
set t_Co=16fez o truque para mim. Antes de definir essa opção, a sintaxe de destaque não funcionou.
Koraktor
2
É divertido quanto trabalho você precisa para obter 16 cores trabalhando em um editor de texto!
Nota: Estou descobrindo que no Gnome Terminal 3.18.3 (no Ubuntu 16.04) isso não funciona mais - parece não aceitar as cores e usar o t_Co = 256 do vim fornece melhores resultados.
Artfulrobot
9

Eu também encontrei este projeto:

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

Obrigado pelas dicas :-)

DavidG
fonte
11
Sim sim e sim! Use este script, não se preocupe com todos os hackers na resposta aceita. Isso "simplesmente funciona".
LondonRob
Maravilhoso! Isso é muito melhor. Obrigado.
Wchargin # 6/15
Em algumas instalações, ele funciona. Em alguns, é muito azul.
JohnMudd 22/02