tmux vim colorscheme lo sfondo non viene visualizzato


12

Ho installato tmux ma ora la modalità di testo vim colorschemes non riempie correttamente il colore di sfondo. Ecco come appare con colorscheme xoria256 nel normale terminale Ubuntu 14.10:

inserisci qui la descrizione dell'immagine

E qui quando lo eseguo nello stesso identico terminale dopo tmux:

inserisci qui la descrizione dell'immagine

Quindi, come puoi vedere, il desktop viene mostrato ovunque dove non c'è testo in VIM. Ho un terminale a 256 colori.

Il mio .tmux.conf:

~ cat .tmux.conf
set -g mode-mouse on
set -g default-terminal "screen-256color"

e ho un terminale a 256 colori:

~ tput colors
256

Come faccio a far funzionare correttamente tmux con i colori vim 256 colori che funzionano bene nel normale terminale?


Nella mia esperienza, tmux si comporta in modo strano quando viene lanciato all'interno gnome-terminal. Prova ad avviare tmux con TERM=xterm tmuxe vedi se si comporta diversamente. Se xtermnon funziona, prova xterm-256coloro xterm-color.
jw013,

@ jw03 Purtroppo nessuna di queste opzioni ha funzionato per risolverlo. Comportamento identico. Stesso comportamento se eseguo tmux in terminator
Thomas Browne il

1
In una shell all'interno di tmux, qual è il valore di $TERM? In caso contrario screen-256color, prova ad avviarlo vimcome TERM=screen-256color vim, quindi assicurati di non impostare alcun set di script di avvio TERM(o, se devi farlo per aggirare il software difettoso, assicurati prima di controllare il valore originale).
Ry,

@minitech: Bingo. Ho avuto xterm-256color mentre screen-256color risolve il problema. Se lo rendi una risposta, lo accetterò.
Thomas Browne,

Questo ha funzionato per me: stackoverflow.com/a/15095377/96855
Olivier Lalonde

Risposte:


5

Questo accade quando TERMnon è impostato sul corretto screen[-256color]nell'ambiente di Vim, di solito da alcuni script di avvio della shell. In tal caso, ad esempio, hai a

TERM=xterm-256color

, rimuovilo o assicurati che controlli il valore originale di TERMprima di modificarlo, ad es

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi


2

Commento in ritardo, ma avevo esaminato tutti i thread e non sono riuscito a risolverlo fino a quando non ho fatto quanto segue. Tutto quello che dovevo fare era aggiungere un secondo controllo di

if [[ $TERM == screen]]; then
    TERM=screen-256color
fi

oltre alla prima istruzione condizionale nel mio .bashrcfile:

if [[ $TERM == xterm ]]; then
    TERM=xterm-256color
fi

Ho anche avuto questo in .tmux.conf:

set -g default-terminal "screen-256color"

Nel mio .vimrcfile:

set term=screen-256color
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.