Incompatibilidade de cor de fundo no vim e no tmux

4

Estou tendo problemas para obter o intervalo completo de cores para trabalhar no vim quando estou executando o tmux. Acredito que seja algum tipo de problema com variáveis TERM ou 256colors, mas fiz tudo o que consegui encontrar on-line para obter 256 cores trabalhando no vim, tmux e iTerm, e nada corrigiu isso. É um pequeno problema, mas seriamente me incomoda.

Aqui está um arquivo de código de exemplo no vim, apenas através do iTerm:

eaquiestáomesmoarquivonovimatravésdotmuxedoiTerm:

Observe como as cores do plano de fundo parecem um pouco incompatíveis, apenas quando o código é gravado lá. Por que isso poderia ser?

Eu tenho set t_Co=256 no meu vimrc , meu terminal iTerm está definido como xterm-256color , tenho set -g default-terminal xterm-256color no meu tmux.conf e tenho:

if [ -e /usr/share/terminfo/x/xterm-256color ]; then
     export TERM='xterm-256color'
else
     export TERM='xterm-color'
fi

no meu .profile . Esse problema exato é replicado em minha máquina baseada no Ubuntu no trabalho, e eu uso todos os mesmos arquivos de configuração lá. Isso pelo menos isola o problema como não sendo relacionado ao OS / iTerm.

    
por The Wind-Up Bird 20.04.2015 / 13:39

2 respostas

5

Depois de adicionar a linha abaixo em .tmux.conf

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

Você ainda precisa adicionar a linha abaixo em .vimrc

set term=screen-256color

Finalmente, o alias precisa ser adicionado a .bashrc

alias tmux='tmux -2'
    
por 17.08.2015 / 09:41
2

Dentro do tmux, você precisa definir TERM=screen-256color . Pode ser algo como aqui que isso só funciona dentro do tmux, mas não no tmux.conf . Verifique se você não sobrescreve incondicionalmente o valor TERM , por exemplo no seu .bashrc , ou qualquer coisa que seja obtida quando você abrir um shell dentro do tmux.

    
por 20.04.2015 / 14:16