Vim não colorindo o final das linhas quando executado dentro da tela

4

Quando o vim é iniciado dentro da tela do gnu, ele não colore o fundo após o texto.

Atelaparecequedeveserconfiguradaparalidarcorretamentecom256cores:

$screen$tputcolors256$echo$termxterm-256colors

SO&Shellestouusando:

$cat/etc/redhat-releaseRedHatEnterpriseLinuxWSrelease4(NahantUpdate9)$echo$shell/bin/tcsh

Otestedecorespareceestarfuncionandook,excetonofinaldaslinhas:

:runtimesyntax/colortest.vim:source%

E quando não estiver usando a tela:

Existe alguma outra configuração que eu deveria estar verificando, existe um modo de tela que eu possa forçar para permitir que as cores sejam redesenhadas corretamente?

    
por Munkymorgy 17.12.2013 / 13:35

2 respostas

2

Parcialmente baseado em: tmux-and-screen-256-term-not-supported .

O problema é resolvido ao usar um termo 'tela'. Para identificar como 256 cores corretamente, deve ser 'screen-256colors'. O que leva ao erro abaixo:

E558: Terminal entry not found in terminfo
'screen-256colors' not known. Available builtin terminals are:
    builtin_gui
    builtin_ansi
    builtin_xterm
    builtin_iris-ansi
    builtin_d

Para criar uma entrada screen-256colors:

infocmp screen > screen-256color.ti

Alterando (tela-256color.ti)

#       Reconstructed via infocmp from file: /usr/share/terminfo/s/screen
screen|VT 100/ANSI X3.64 virtual terminal, 
        am, km, mir, msgr, xenl, 
        colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,

para:

#       Reconstructed via infocmp from file: /usr/share/terminfo/s/screen
screen-256color|VT 100/ANSI X3.64 virtual terminal, 
        am, km, mir, msgr, xenl, 
        colors#256, cols#80, it#8, lines#24, ncv#3, pairs#64,

Agora crie o terminfo:

tic screen-256color.ti
    
por 17.12.2013 / 14:18
1

Dentro de screen ou tmux , o valor de $TERM precisa começar com screen (por exemplo, screen , screen-256color ) e não com xterm .

O problema atual aparece devido à diferença na capacidade bce (apagamento de cor de fundo) dos dois terminais.

As descrições TERM=screen* não contêm esse sinalizador e, portanto, em screen ou tmux , uma sequência de escape "limpar do cursor até o final da linha" pinta essa com a cor de plano de fundo padrão do terminal. / p>

Por outro lado, TERM=xterm* descriptions contêm esse sinalizador e, consequentemente, xterm apaga usando a cor de plano de fundo ativa no momento.

No seu caso, vim vê incorretamente que o terminal tem o sinalizador bce (por causa de TERM=xterm* ) e, portanto, usa a operação de atalho para preencher com a cor de fundo ativa no momento, que apareceria corretamente diretamente sob xterm, mas aparece incorretamente em screen / tmux . Se você der a ele TERM=screen* corretamente, ele notará a falta de bce e escolherá emitir muitos caracteres de espaço em vez da sequência "limpar até o fim da linha", que parecerá correta.

    
por 25.04.2015 / 23:56