Come faccio a far funzionare la combinazione di colori solarizzata con gnome-terminal, tmux e vim?


25

Ci sono molte domande in merito, ma è perché ci sono così tante variabili. Ho dovuto mettere insieme le istruzioni da molti siti prima di farlo funzionare.

Innanzitutto, non ho potuto impostare facilmente le 16 definizioni di colore solarizzate in gnome-terminal (l'ho fatto a mano / facendo clic solo per rendermi conto che non avevo corretto l'ordine / la mappatura). Una volta risolto il problema, sono passato ...

Poi ho avuto i colori solarizzati che funzionavano in modo OK, ma c'erano alcuni strani sfondi neri che apparivano in certe luci. Una volta risolto ciò, sono passato ...

Poi mi sono reso conto che Vim è andato contro Winky una volta correndo dentro Tmux. Questo è massicciamente dibattuto, ma pochissime delle risposte (che dicono per lo più su come impostare TERMa xterm-256colors) ha lavorato per me. Alla fine ho risolto anche quello.

Solarized è una tavolozza molto bella (anche se ho scurito il colore di base più scuro e schiarito il più chiaro poiché preferisco il contrasto più elevato e ho trovato il 'bianco' di tmux di gran lunga troppo giallo sul mio schermo calibrato - probabilmente su un tipico schermo non calibrato del laptop mentre ' di solito è troppo blu!), quindi sto postando questa domanda con la sua risposta per condividere i risultati del mio apprendimento.


Uso xterm-256color (non terminale GNOME), tmux e vim e non ricordo di dover saltare da nessuna parte vicino a questi tanti cerchi. L'unica cosa che dovevo fare era solarizzare il terminale (xterm utilizza XResources invece dei profili) che è stato un po 'doloroso da capire, aggiungere solarized.vimed ero pronto.
jw013

Risposte:


24

Solarizzato offre colori molto specifici. Non puoi davvero ottenere questi colori in una tavolozza di 256 colori standard . L'unico modo per raggiungere questo obiettivo è impostare i colori esatti nell'emulatore di terminale, quindi le app pensano di utilizzare solo 16 colori standard (8 + 8 colori), ma questi sono stati accuratamente mappati sulla tavolozza Solarizzata.

Il terminale Gnome non fornisce un modo molto semplice per esportare / importare palette o profili, ma puoi farlo con questo 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. qui ho ignorato i colori più scuri e più chiari di Solarized. Se lo desideri, puoi utilizzare gli originali, come commentato.

Abbastanza buono. Ora installa il file dei colori di Solarized VIM inserendo quel file ~.vim/colors/solarized.vim.

Ora puoi dire a Vim di usare quella combinazione di colori con colo solarized. Ma questo non ha funzionato del tutto e ho dovuto dire a Vim di usare un pallet a 16 colori set t_Co=16. Ho bloccato entrambi quelli nel mio ~/.vimrcfile.

Ora i colori vim funzionavano, ma non se funzionassero all'interno di tmux.

La prossima parte è molto confusa. La maggior parte dei consigli dice di impostare TERMfuori da tmux xterm-256colors, ma quando lo facessi, tmux non sarebbe nemmeno iniziato. Mi ha anche confuso: la solarizzazione non dice che la tavolozza dei 256 colori sia una scarsa approssimazione? Bene, è confuso, e comunque, non funzionava, quindi avevo bisogno di un altro modo per andare avanti:

Crea un file /tmp/foocontenente:

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

Quindi installalo con sudo tic /tmp/foo

Infine, alias tmuxcome segue:

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

Ora ottengo esattamente i colori giusti nel terminale, in vim e in vim-inside-tmux. Nb. l' -2opzione dice tmuxdi usare una tavolozza di 256 colori, il che è davvero confuso perché le variabili env sembrerebbero dirlo altrimenti ... Davvero non lo so, e temo di non interessarmi davvero di scalare quell'apprendimento curva perché ora ho un bellissimo terminale colorato che funziona.


set t_Co=16ha fatto il trucco per me. Prima di impostare tale opzione, l'hightlighting della sintassi non funzionava affatto.
Koraktor,

2
È divertente quanto lavoro devi fare per far funzionare 16 colori in un editor di testo!

Nota: sto scoprendo che in Gnome Terminal 3.18.3 (in Ubuntu 16.04) questo non funziona più - non sembra accettare i colori e l'uso di t_Co = 256 di vim dà risultati migliori.
artfulrobot

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.