Usando esquemas de cores com vim e betume


15

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 baixei o arquivo e salvei no meu ~/.vim/colorsdiretório. Em seguida, digo ao VIM para usar o esquema de cores emitindo:

:colors desert

Ele deveria ficar assim:

insira a descrição da imagem aqui

No entanto, eu recebo isso:

insira a descrição da imagem aqui

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

Permitir que o terminal especifique cores ANSI - marcada
Permitir que o terminal use o modo de 256 cores - marcado
O teste em negrito é de uma cor diferente - verificado
Tentativa de usar paletas lógicas - desmarcada
Usar cores do sistema - desmarcada

Se eu fizer o sudologin roote tentar o mesmo, não recebo nenhuma cor além do texto em branco sobre fundo preto.

Esses esquemas visam principalmente o gVIM e o PuTTY simplesmente não consegue exibir essas cores?

Pesquisei um pouco no google e encontrei artigos como este, mas eles não parecem funcionar.

Respostas:


22

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 xtermsuporta apenas oito cores:

$ infocmp -1L xterm | grep max_colors

Isto significa que mesmo se a sua versão do Xterm faz suporte modo de 256 cores, os programas não vai saber sobre ele.

  • 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 solicitar ao PuTTY que sempre se identifique como xterm-256color, em Configuração → Conexão → Dados → String do tipo terminal .

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

  • Você também pode definir a 't_Co'opção no vim 256para substituir o valor 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]+/\1#256/' > /tmp/xterm
    $ tic /tmp/xterm
    

    A entrada atualizada será mantida ~/.terminfo.


Excelente resposta. É melhor, mas sinto que 256 cores não são suficientes para renderizar esses tons pastel. Alguma idéia de por que não tenho cores quando estou logado root?
Kev

1
@Kev: 1) O modo de 256 cores é o melhor que você pode obter em um emulador de terminal compatível com VT100. (Ouvi o KDE Konsole ter suporte de cores verdadeiras, mas é muito fora do padrão.) 2) Quando você faz logon como root, obtém um diretório inicial separado e outro ~/.vim/colorstambém.
user1686

1
@ Kev: Porque vi não possui esquemas de cores ou destaque de sintaxe - ou qualquer coisa, exceto os recursos básicos originais. (VIM é "vi melhorado" depois de tudo.)
user1686

1
vi --versiondiz que é vim, então é um vim reduzido para parecer vi? Desculpe se essa é uma pergunta idiota, já faz anos desde que eu trabalhei com o unix com raiva (caixas SCO Unix com portas seriais) e só havia vi (vi real).
Kev

1
Tipo de. Quando você executa o vim como " vi", ele inicia no modo "compatibilidade", comportando-se o máximo possível, como o vi. Não conheço o CentOS, portanto, não tenho certeza se é apenas um modo ou uma compilação totalmente separada. (Minha distro empacota o vi real em vez disso ...)
user1686 14/11
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.