dezembro 21, 2010

Esquema de Cores Corretas no Vim e Gvim

Primeiro e último post de 2010!

Vou ensinar o meu método de corrigir o esquema de cores no Vim e GVim. Geralmente existe inconsistências entre as cores do mesmo tema nos dois editores devido a forma como são interpretadas pelo terminal. Estou usando Ubuntu 10.04 LTS x86.

Primeiro passo é instalar o colorsupport.vim. É só fazer download e colocar na pasta ' ~/.vim/plugin ':

Isso seria suficiente se o seu terminal estivesse configurado para 256 cores. Não vou ensinar como fazer isso pois eu encontrei uma maneira mais elegante: fazer apenas o vim usar 256 cores.

Use o comando para listar os modos suportado pelo terminal:
find /lib/terminfo /usr/share/terminfo -name "*256*"
Daí deve aparecer algo como:
/lib/terminfo/x/xterm-256color
/lib/terminfo/s/screen-256color-bce
/lib/terminfo/s/screen-256color
/usr/share/terminfo/x/xterm-256color
/usr/share/terminfo/s/screen-256color-bce
/usr/share/terminfo/s/screen-256color
O vim aceita um parâmetro -T que você usa para definir o modo do terminal que ele deve utilizar. O parâmetro ' xterm-256color ' deu certo para mim. Então só falta agora adicionar no ' ~/.bashrc ' a seguinte linha em negrito:
.
.
.
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls -la --color=auto'
alias vim='vim -T xterm-256color'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
.
.
.
As alterações só vão fazer efeito depois que você reiniciar o terminal!

Você pode entrar no vim e visualizar os temas por meio do comando ' ColorSchemeBrowse '. Quando você fizer uma escolha você pode fazer que ele seja carregado automaticamente adicionando
colorscheme desert
no seu arquivo ' ~/.vimrc '. O parâmetro desert deve ser trocado pelo nome do tema que você desejar. Você pode visualizar uma lista de temas pelo projeto Vim Color Scheme Test.

Tchau 2010, que venha 2011!