Vim no tmux exibe cores erradas

Vim no tmux exibe cores erradas

Eu instalei o Ubuntu 11.10. Em seguida, baixei o tema Solarized para o Terminal Gnome. No terminal, meu vim parece bom: o plugin vim-powerline é exibido corretamente e a sintaxe é destacada com as cores adequadas. Mas quando executo o tmux e executo o vim - o destaque de sintaxe usa apenas uma cor básica e o vim-powerline não exibe cores. Eu olhei o FAQ sobre vim-powerline e a solução deveria ser esta linha em .tmux-config:

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

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

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

Mas isso também não ajuda.

Esta é a única linha em .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

Responder1

Iniciar o tmux com o seguinte sinalizador corrige isso para mim:

tmux -2

da página de manual do tmux:

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

Responder2

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, isso funcionará

Responder3

Estou tendo o mesmo problema no Ubuntu 10.04 LTS usando Byobu 5.17 e tmux 1.5 usando o Solarized mais recente do repositório GitHub.

Consegui corrigir isso parcialmente especificando $TERMno .bashrcarquivo:

export TERM="xterm-256color"

Parece, também, que há um bug registrado no launchpad, mas ainda não foi resolvido: byobu não exibindo dircolors corretamente

Responder4

O tipo de terminal deve ser definido como screen-256color em ~/.tmux.conf. Ele diz ao tmux o que definir a variável de ambiente TERM, para que não funcione na sessão atual - inicie uma nova e teste-a.

Se ainda assim 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 única do vi.

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

http://scie.nti.st/dist/256colors2.pl

PS. Presumo que você já corrigiu o erro de digitação que Jordanbrock notou.

informação relacionada