Usando esquemas de cores com vim e putty

13

Estou tentando usar o esquema de cores do deserto com o VIM 7.0 no CentOS 5.6 x64 localizado aqui:

http://hans.fugal.net/vim/colors/desert.vim

Eu fiz o download do arquivo e o salvei no diretório ~/.vim/colors . Em seguida, digo ao VIM para usar o esquema de cores emitindo:

:colors desert

Deveria ser assim:

Noentanto,euentendoisso:

Estou fazendo logon neste servidor apenas como um usuário comum (não root ou sudo ) usando o PuTTY 0.60 e defini as seguintes opções em Window -> Colours :

Allow terminal to specify ANSI colours - checked
Allow terminal to use 256-colour mode - checked
Bolded test is a different colour - checked
Attempt to use logical palettes - unchecked
Use system colours - unchecked

Se eu sudo ou fizer logon como root e tentar o mesmo, não obtenho nenhuma outra cor além do texto branco em um plano de fundo preto.

Esses esquemas são voltados principalmente para o gVIM e o PuTTY não consegue exibir essas cores?

Eu pesquisei um pouco e esbarrei em artigos como este mas eles não aparecem para trabalhar.

    
por Kev 14.09.2011 / 14:41

1 resposta

19

Por padrão, o PuTTY se apresenta como xterm . O banco de dados terminfo , usado por vários programas para determinar os recursos do terminal, diz que xterm suporta apenas oito cores:

$ infocmp -1L xterm | grep max_colors

Isso significa que mesmo que sua versão do Xterm suporte o modo de 256 cores, os programas não saberão sobre isso.

  • A correção mais fácil é definir sua variável de ambiente $ TERM como xterm-256color .

    (Em seu ~ / .profile, você poderia usar: if [ "$TERM" = xterm ]; then TERM=xterm-256color; fi )

  • Você pode dizer ao PuTTY para sempre identificar-se como xterm-256color , via Configuração → Conexão → Dados → Cadeia do tipo terminal .

    Nota: Se você usa # 1 ou # 2, e se conecta a um servidor que não tem a entrada terminfo apropriada, todos os programas TUI irão quebrar.

  • Você também pode definir a opção 't_Co' no vim para 256 para substituir o valor do terminfo.

    if &term == "xterm"
        set t_Co=256
    endif
    
  • Ou você pode editar o banco de dados terminfo .

    $ infocmp -L -1 xterm | sed -r 's/(max_colors)#[0-9]+/#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    A entrada atualizada será mantida em ~/.terminfo .

por 14.09.2011 / 16:19