Vim no tmux exibe cores erradas

47

Eu instalei o Ubuntu 11.10. Então baixei o tema Solarized para o Gnome Terminal. Do terminal meu vim parece ser bom: o plugin vim-powerline é exibido corretamente e a sintaxe é destacada com cores adequadas. Mas quando executo o tmux e lá executo o vim - syntax highlight usa apenas uma cor básica e o vim-powerline não exibe cores. Eu olhei para o FAQ no vim-powerline e a solução deveria ser esta linha em .tmux-config:

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

Mas isso não funciona. Eu olhei para o TERM e ele retornou 'xterm', então tentei:

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

Mas isso também não ajuda.

Esta é a única linha no .tmux.config. Em .vimrc tenho as seguintes linhas:

call pathogen#infect()
set nocompatible
set encoding=utf-8
set laststatus=2
let g:Powerline_symbols = 'fancy'
set t_Co=256
syntax enable
set background=dark
colorsheme solarized
    
por dhuCerbin 26.04.2012 / 20:36

10 respostas

48

Iniciar o tmux com o sinalizador a seguir corrige isso para mim:

tmux -2

da página man do tmux:

-2 Force o tmux a assumir que o terminal suporta 256 cores.

    
por Holy Mackerel 27.09.2013 / 05:49
26

Estou tendo o mesmo problema no Ubuntu 10.04 LTS usando o Byobu 5.17 & amp; tmux 1.5 usando o último repositório Solarizado do GitHub.

Consegui corrigir parcialmente isso especificando $TERM no arquivo .bashrc :

export TERM="xterm-256color"

Parece, também, que existe um bug no launchpad, mas ainda não está resolvido: byobu não exibe corretamente os dircolors

    
por Raminoid 08.05.2012 / 07:35
20

isso funcionou para mim

em .tmux.conf

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

em .vimrc

set term=screen-256color

remova o valor do termo antigo para .vimrc, acredite em mim isso vai funcionar

    
por kiran ps 07.12.2014 / 08:03
4

O tipo de terminal deve ser configurado para screen-256color em ~ / .tmux.conf. Ele informa ao tmux o que definir a variável evironment do ambiente, para que não funcione na sessão atual - inicie um novo e teste-o.

Se ainda não funcionar, você pode executar o Vim usando:

TERM=screen-256color vi

Isso define a variável de ambiente apenas para uma execução vi única.

Se isso não faz com que o vim exiba todas as cores, teste se o seu terminal (não tenho certeza se você está testando com apenas um emulador de terminal) é compilado para suportar a paleta de 256 cores - baixe e execute o seguinte Perl script do emulador de terminal em questão.

link

PS. Eu suponho que você já tenha corrigido o erro de digitação do jordanbrock.

    
por Marcin Kaminski 16.10.2012 / 22:01
2

Como explicado por Marcin Kaminski, se TERM = screen-256color vim funcionar para você, basta adicionar o seguinte ao seu .bashrc
TERM = tela-256 cores e seguindo em seu .tmux.conf set -g default-terminal "tela-256 cores"

Eu tive o mesmo problema, isso funciona para mim.

    
por user3908054 27.03.2015 / 04:16
1

Há um erro de digitação na última linha do seu .vimrc .

Deve ser colorscheme solarized

Não tenho certeza se isso ajuda:)

    
por jordanbrock 29.04.2012 / 03:43
0

Você pode estar com o mesmo problema documentado em esta resposta.

Basicamente, a configuração .tmux.conf funciona, e TERM está definido como screen-256color , mas o tmux abre o bash e chama seu .bashrc, que define TERM para outra coisa (talvez xterm-256color ). / p>

A solução é definir TERM nas configurações do terminal em vez de no .bashrc. Se isso não for uma opção, você pode verificar TERM dentro de .bashrc e não alterá-lo se já for screen-256color .

    
por jtpereyda 27.02.2014 / 02:16
0

No tmux de inicialização do shell, verifique se $TERM é xterm-256color ou screen-256color . Veja como alterar $ TERM :

  • Geralmente, o ~/.Xresources é o melhor caminho (se suportado)
  • Para gnome-terminal , veja link

Como uma alternativa, como Holy Mackerel disse, você pode forçar o tmux para 256 cores via:

$ tmux -2
    
por Wernight 01.04.2014 / 16:11
0

[Solucion] [1] isso pode perturbar a sua visão e tornar o Vim desagradável de usar por um longo período de tempo.

Você pode corrigir isso executando: set term = screen-256color no Vim ou relançando o Vim sob o ambiente TERM = screen-256color, como alguns especialistas recomendam: link

    
por JEnriquePs 11.08.2014 / 16:56
0

No seu .bashrc ou .zshrc, basta adicionar

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

e também comece com o tmux -2

    
por Talal 15.06.2015 / 22:58

Tags