Olá, pessoal
Para quem não conhece, o Vim é um editor de texto muito poderoso e bem famoso no mundo da programação. Com ele é possível fazer um monte de coisas legais e de forma bem rápida, principalmente por ele dispensar o uso do mouse.
Porém, como ele é um pouco diferente do que a maioria dos editores, um monte de gente fica com “medinho” e acabam nem tentando aprender a usa-lo. Mas para quem não tem medo de experimentar uma ferramenta nova, vale a pena começar com o tutorial do próprio Vim:
Depois disso, para poder explorar mais o poder do editor, vale a pena conferir a Wiki de Dicas do Vim.
É muita coisa, mas vale a pena ir usando o que está lá em “doses homeopáticas” e ir aprendendo aos poucos.
Além disso, também é interessante aprender um pouco sobre o vimrc, que é o arquivo de configurações do Vim. Com ele, é possível personalizar muitas características do editor, desde cores até funcionalidades complexas.
Abaixo, segue meu vimrc para servir como um exemplo, mas é possível encontrar muito mais coisa na internet.
" Arquivo .vimrc de Vinícius Kiwi Daros
" http://uspgamedev.org
set nocompatible " Previne o Vim de emular limitações do Vi.
set bs=2 " Backspace tire identação e quebras de linha.
set autoindent " Mantem a identação atual nas próximas linhas.
set nobackup " Não cria arquivos de backup.
set expandtab " Transforma tabs em espaços.
set cinoptions=>4 " Usa identação de 4 espaços depois de { em arquivos .c
set shiftwidth=4 " Identação padrão.
set tabstop=4 " Quantidade de espaços que o Vim entende como um tab.
set softtabstop=4 " Quantidade de espaços inseridos pela tecla tab.
set background=dark " Fundo preto.
set noerrorbells " Impede o Vim de fazer 'beep'
set showmatch " Alinha } ou ) com o respectivo { ou (
set ruler " Mostra a posição do cursor o tempo todo.
set ttyfast " Mudanças mais suaves no terminal
set smartindent " Faz identações 'espertas' baseadas na linha anterior.
set textwidth=0 " Textos podem ser inseridos em qualquer coluna.
set nowrap " Nunca quebra automaticamente as linhas.
syntax on " Syntax highlighting
" Define as cores usadas no syntax highlighting
colorscheme koehler
hi Comment ctermfg=darkcyan
hi Normal ctermfg=9
hi NonText ctermfg=white
hi LineNr ctermfg=darkgrey
hi Constant ctermfg=darkmagenta
hi Statement ctermfg=green
hi PreProc ctermfg=darkred
hi Type ctermfg=blue
hi Special ctermfg=green
" Mapeia as teclas de função para executarem no modo
" de inserção o mesmo que fazem no modo normal.
imap <F2> <c-n>
imap <F3> <esc><F3>
imap <F4> <esc><F4>
imap <F5> <esc><F5>
imap <F7> <esc><F7>
imap <F8> <esc><F8>
imap <F9> <esc><F9>
" Salva.
map <F3> :w<cr>
" Salva e sai.
map <F4> :wq<cr>
" Divide a tela verticalmente.
map <F7> :rightbelow vsplit<cr>
" Restaura esquema de cores.
map <F8> :colorscheme koehler<cr>:hi Comment ctermfg=darkcyan<cr>:hi Normal ctermfg=9<cr>:hi NonText ctermfg=white<cr>:hi LineNr ctermfg=darkgrey<cr>:hi Constant ctermfg=darkmagenta<cr>:hi Statement ctermfg=green<cr>:hi PreProc ctermfg=darkred<cr>:hi Type ctermfg=blue<cr>:hi Special ctermfg=green<cr>
" Muda o esquema de cores para o estilo evening.
map <F9> :colorscheme evening<cr>
Para terminar, um comentário pessoal (e flamer :twisted: ):
Vim > Emacs
Abraços,
Vinícius