O fundo tmux vim colorscheme não está mostrando


12

Instalei o tmux, mas agora os esquemas de cores do vim no modo de texto não preenchem corretamente a cor do plano de fundo. Aqui está como fica o colorscheme xoria256 no terminal Ubuntu 14.10 normal:

insira a descrição da imagem aqui

E aqui quando eu executá-lo exatamente no mesmo terminal após o tmux:

insira a descrição da imagem aqui

Então, como você pode ver, a área de trabalho está sendo exibida em qualquer lugar onde não haja texto no vim. Eu tenho um terminal de 256 cores.

Meu .tmux.conf:

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

e eu tenho um terminal de 256 cores:

~ tput colors
256

Como faço para o tmux funcionar corretamente com os esquemas de cores vim de 256 cores que funcionam bem no terminal normal?


Na minha experiência, o tmux se comporta estranhamente quando lançado dentro gnome-terminal. Tente iniciar o tmux com TERM=xterm tmuxe veja se ele se comporta de maneira diferente. Se xtermnão funcionar, tente xterm-256colorou xterm-color.
jw013

@ jw03 Infelizmente, nenhuma dessas opções funcionou para corrigi-lo. Comportamento idêntico. Mesmo comportamento se eu executar tmux dentro terminator
Thomas Browne

1
Em um shell dentro do tmux, qual é o valor $TERM? Caso contrário screen-256color, tente iniciar vimcomo e TERM=screen-256color vim, em seguida, verifique se nenhum script de inicialização foi definido TERM(ou, se você precisar fazer isso para solucionar o problema do software com erros, verifique primeiro o valor original).
Ry-

@minitech: Bingo. Eu tinha xterm-256color enquanto screen-256color corrige o problema. Se você fizer disso uma resposta, eu a aceitarei.
9789 Thomas Thompson

Respostas:


5

Isso acontece quando TERMnão está definido como correto screen[-256color]no ambiente do Vim, geralmente por algum script de inicialização do shell. Se for esse o caso - por exemplo, você tem um

TERM=xterm-256color

, remova-o ou verifique se ele verifica o valor original TERMantes de alterá-lo, por exemplo

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


2

Comentário tardio, mas eu havia examinado todos os tópicos e não consegui resolvê-lo até fazer o seguinte. Tudo o que eu precisava fazer era adicionar uma segunda verificação de

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

além da primeira declaração condicional no meu .bashrcarquivo:

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

Eu também tive isso em .tmux.conf:

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

No meu .vimrcarquivo:

set term=screen-256color
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.