Configuração do vim

Publicado por Guilherme Rocha 09/07/2009

[ Hits: 6.729 ]

Homepage: www.gf7.com.br

Download .vimrc




Segue script que encontrei na net e deixou o meu VIM bem melhor.

  



Esconder código-fonte

" original em http://verde666.org/coluna/coluna09.vim
"
" olás. creio que o  vim  não precisa de  apresentação não é mesmo? pois
" bem,  então que tal explorarmos aquele mundo  misterioso que o arquivo
" de configração  ~/.vimrc  nos apresenta? o que é um vimrc?  oras, este
" texto todo é um vimrc!  copie-o para seu  $HOME  e incremente seu vim.
" ah! aproveite e leia este texto direto no vim, para ficar colorido.
"
" como já pudemos perceber, linhas que começam com aspas são comentários
" e nelas podemos soltar o verbo e colocar todo tipo de  informação útil
" para a manutenção deste arquivo. então vamos lá.
"
" para aumentar a esperteza e memorização do vim, podemos ter um arquivo
" ~/.viminfo que guardará dados úteis como seu histórico de pesquisas /,
" linha de comando :, marcas `, registradores, entre outros. então com o
" viminfo é  possível copiar uma  linha qualquer (yy),  sair do arquivo,
" abrir um OUTRO arquivo e colar (p) aquela linha copiada anteriormente.
" você pode inclusive nesse intervalo  desligar a máquina e ficar um mês
" de férias, que ao voltar o vim  ainda saberá qual foi a linha copiada.
" não tem contra-indicações. USE!
"
" a segunda linha é uma gambiarra para que ao abrir um arquivo, o cursor
" já fique na  posição que estava na  última vez que ele foi  editado. o
" viminfo guarda a posição de TODOS os arquivos que você editou.
"
set viminfo='10,\"30,:20,%,n~/.viminfo
au BufReadPost * if line("'\"")|execute("normal `\"")|endif

" o vim possui uma linguagem de programação própria,  onde podemos fazer
" funções, e até aplicativos inteiros, como o  vine (leitor de e-mail) e
" o jogo sokoban.vim. mais info sobre o assunto consulte www.vim.org.
"
" mas, como já  temos que fazer  nossos próprios programas, temos opções
" mais acessíveis para automatizar tarefas,  como o mapeamento. aqui vai
" um mapeamento  exclusivo do  modo de inserção (note o i no começo) que
" faz a  função de completação automática  de palavras, procurando-as no
" próprio arquivo. é fácil de usar e nos poupa tempo, além da certeza de
" que a palavra completada está grafada corretamente. então temos:
"
" F7: completa uma palavra
" F8: dá seqüência a essa palavra
"
" os mapeamentos foram  gravados nas teclas F7 e F8,  mas poderia ser em
" qualquer outra. suponha que você se chame Zózimo Gwinch Wurstalinewski
" e digitou seu nome numa parte do texto. depois em outra parte do mesmo
" texto, você precisa colocar seu nome novamente. ê trabalheira.
"
" mas como você  tem esse supermapeamento,  simplesmente digita Zó<F7> e
" surpresa! seu primeiro nome foi completado. e para fazer o resto, você
" continua completando as palavras seguintes com a tecla <F8>, então com
" Zó<F7><F8><F8>, lá está seu nome completo. imbatível.
"
" isso é muito muito útil ao programar, completando nomes de variáveis e
" funções,  geralmente longos e  difíceis,  e que você repete  em várias
" partes do programa.
"
imap <F7> <c-n>
imap <F8> <c-x><c-n>

" e se você tem certos textos  que sempre tem que ficar  digitando, como
" seu nome completo, seu email, seu endereço,  faça abreviações, que são
" completadas automaticamente enquanto você as digita.
"
" use abreviações para textos normais, para comandos use mapeamentos.
"
iab zgw Zózimo Gwinch Wurstalinewski
iab @@  zozimo@wurstalinewski.com.br

" e como o capitalismo nos obriga a produzir em velocidade insalubre, ao
" salvar e/ou sair de um arquivo, é comum na pressa digitar o `w` ou `q`
" em maiúsculas, pois você ainda não soltou o dedo do  shift que apertou
" para fazer os dois pontos :.
"
" mas não se desespere!  até para os problemas econômicos mundiais o vim
" tem a solução! basta usarmos abreviações para a linha de comando (Cab)
"
cab W  w
cab Wq wq
cab wQ wq
cab WQ wq
cab Q  q

" um mapeamento é na verdade uma  seqüência de teclas que você apertaria
" normalmente no vim,  para fazer a tarefa.  o ENTER é representado  por
" <cr>, um  crtl+y vira <c-y> e se o  mapeamento exceder uma linha, você
" pode quebrá-la e começar a próxima com um escape \.
"
" um cuidado especial  deve ser tomado ao nomear um mapeamento, para não
" usar  letras ou nomes  que já são  comandos do vim.  para evitar isso,
" sempre inicie o nome de um  mapeamento com uma vírgula. no exemplo, ao
" digitar ,d no modo de comando (não é inserção) aparecerá a data atual.
"
map ,d :r!date<cr>
      \:s/ \(...\) \(..\).*\(....\)$/, \2 de \1 de \3/<cr>
      \:nohl<cr>

" e tem uma dica boa para os  programadores  de plantão. comentários num
" programa são  excelentes, mas  na hora da  sua manutenção,  eles podem
" atrapalhar, pois você queria ver só o código.
"
" para resolver este problema, vamos fazer um  truque no vim. que tal se
" pintarmos os comentários de preto para que fiquem invisíveis?  podemos
" fazer isso redefinindo o componente da cor da sintaxe.  ah! e quem usa
" fundo branco (argh) vai ter que trocar `black` por `white`.
"
" e como somos chiques ainda criamos uma função vim pra fazer o serviço.
" a CommOnOff()  oculta/mostra os comentários, alternando.  o resumão do
" que ela faz é: se a variável global  'hiddcomm'  não existir, a cria e
" oculta os comentários. se já existir, restaura os comentários. por fim
" definimos um mapeamento esperto no F11 para chamar nossa função.
"
" dica: se você está lendo este arquivo no vim, experimente agora mesmo!
"   :so %
"   F11
"   F11
"
fu! CommOnOff()
  if !exists('g:hiddcomm')
    let g:hiddcomm=1 | hi Comment ctermfg=black guifg=black
  else
    unlet g:hiddcomm | hi Comment ctermfg=cyan  guifg=cyan term=bold
  endif
endfu
map <F11> :call CommOnOff()<cr>

" e já que estamos mexendo com a sintaxe,  que tal trocar a cor do texto
" daquela seleção que aparece quando você procura algo com o comando / ?
" é fácil, basta definir a cor do componente da sintaxe. ah sim, a opção
" hls (veja abaixo) deve estar ativa.
" 
" você pode colocar as cores que quiser, em inglês. note que é ctermBG e
" FG, de  background e foreground  (fundo e letra). e veja  também que o 
" IncSearch (busca enquanto você digita) é invertido!
"
hi    Search ctermbg=green ctermfg=black
hi IncSearch ctermbg=black ctermfg=cyan

" no vim temos diversas opções para  modificar seu comportamento através
" do comando set. para ver  todas as opções  disponíveis, faça :set all.
" diversas  opções já vêem  ligadas por  padrão, então vamos  ver apenas
" algumas mais diferentes.
"
" é sempre bom associar a abreviação da  opção com o nome em inglês para
" ficar mais fácil a  memorização.  no caso das opções de busca  abaixo,
" seus nomes completos são:
"   IncrementedSearch, HighLightedSearch, IgnoreCase e SmartCaSe
"
set is hls ic scs  "opções espertas de busca
set sm             "ShowMatch: mostra o início do bloco recém fechado
set sw=1           "ShiftWidth: número de colunas para o comando >
set ruler          "régua: mostra a posição do cursor
set shm=filmnrwxt  "SHortMessages: encurta as mensagem da régua
set wildmode=longest,list  "para completação do TAB igual ao bash

" a configuração  necessária para que as  cores funcionem no  modo texto
" geralmente já é feita no  vimrc do sistema, mas caso ela não esteja lá
" aqui estão as linhas mágicas que trarão a alegria das cores de volta a
" sua vida:
"
set background=dark
if has("terminfo")
  set t_Co=8
  set t_Sf=^[[3%p1%dm
  set t_Sb=^[[4%p1%dm
else
  set t_Co=8
  set t_Sf=^[[3%dm
  set t_Sb=^[[4%dm
endif

" mas como acima só  dissemos ao vim 'você pode usar cores', agora falta
" dizermos: 'use cores'. este comando liga a  sintaxe, que é responsável
" por,  dependendo do tipo  de arquivo,  reconhecer e colorir  as várias
" estruturas do texto, como por exemplo <b>tags</b> num HTML.
"
syn on

" outra funcionalidade extremamente  interessante é o autocomando, que é
" executado  automaticamente  dependendo do  nome ou tipo do arquivo, no
" seu carregamento ou saída do editor.
"
" se você tem um arquivo com uma extensão qualquer, como .xyz e quer que
" o vim o interprete como um arquivo HTML,  diga para o vim configurar o
" ft (FileType)  ao abrir um arquivo novo  (BufNewFile)  ou já existente
" (BufRead) com essa extensão.
"
au BufNewFile,BufRead *.xyz set ft=html
" 
" ou ainda,  se for um arquivo  de um tipo  já reconhecido pelo vim, use
" diretamente a opção FileType. vamos usar de exemplo a linguagem python
" onde os TABs indicam os blocos de comandos, então é legal `vê-los`.
"
" para isso definimos uma  regra rápida de sintaxe chamada `pythonTAB` e
" a ela associamos a cor azul. além disso definimos algumas opções com o
" comando set e  para fechar,  trocamos a cor  das "strings" para verde,
" porque aquele rosinha é muito palha. 
"
au FileType python syn match pythonTAB '\t\+'
au FileType python hi pythonTAB ctermbg=blue
au FileType python set ts=4 tw=80 noet
au FileType python hi pythonString ctermfg=darkgreen

" e p-p-por hoje é só p-pessoal.
"
" --
" este texto pode ser copiado livremente na íntegra ou em parte, desde que
" indicado o endereço do original: http://verde666.org/coluna

Scripts recomendados

Remoção completa de gateway para Tivoli Framework

Usando dialog para adiciona usuários no squid

Verificando roteamento em vários servidores Linux

arquivoAoAlvo.sh

Corrigindo problema com Splash no Ubuntu


  

Comentários
[1] Comentário enviado por pothix em 10/07/2009 - 10:19h

Æ!!

Várias coisas interessantes de vim e um arquivo bem documentado.
Mas se você usa realmente o Vim aprenda a customizar o seu .vimrc para as suas necessidades e não use o dos outros. ( experiência própria ).

Há braços

[2] Comentário enviado por grochap em 10/07/2009 - 11:17h

Sem dúvida,
eu uso o meu .vimrc de acordo com as minhas necessidades.

Apesar de estar cada vez mais distante dos códigos....

Compartilho este aquivo pois volta e meia pessoas perguntam como deixo o meu vim tão lindo,
O meu é diferente deste, mas toda vida, é melhor, postar um bem documentado, né?

Apesar do que eu não concordo em "não usar o dos outros" como vc fala.
Quando vc fala "experiência própria", seria interessante compartilhá-la conosco.

abraço,

Guilherme
www.gf7.com.br


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts