sábado, 24 de março de 2007

Dicas legais de programação usando vim: Vim-tips parte 1!

No meu trabalho, temos uma comunidade bastante grande que usa Vim e por isso acumulamos várias dicas úteis. Vou tentar escrever por aqui (dividindo em alguns capítulos) algumas features que usamos e achamos bastante produtivas e úteis.

Lembra daquelas IDEs de desenvolvimento cheias de features para debug que você já usou? Nenhuma fica atrás do Vim. O Vim possui algumas features não muito famosas porém que são extremamente úteis na hora de debugar ou seguir declarações de funções. Vou listar aqui algumas coisas interessantes que achamos.


Ctags, rastreando declarações de funções e identificadores.

Por vezes você estará em um ambiente de código fonte que você não conhecerá exatamente todas as funções ou variáveis. Um projeto que veio de outra pessoa ou até mesmo um computeiro de software livre contribuindo com a comunidade não tem obrigação de conhecer todo o sistema.

Instalando ctags em seu sistema Linux: Será fácil. Algo como um "./configure && make && sudo make install" não resolva. Ou então "apt-get install ctags" e até mesmo "emerge ctags" deve ser bastante útil dependendo da sua distro :-)

Direto ao ponto: Vá ao diretório raiz de seu projeto e digite:

$ ctags *.[ch] -R # no caso de ser um projeto desenvolvido em C

Você estará criando um arquivo de tags lendo palavras-chave percorrendo seus arquivos .c e .h recursivamente (-R). Isso irá criar um arquivo "tags".

Para usar ctags dentro do Vim, entre em modo de comando e coloque seu cursor sobre uma função ou uma variável e aperte:

Control+]

Pronto você pulará diretamente para a declaração da função! Amazing! :-P Para voltar a ver o arquivo que você estava editando, aperte:

Control+T

Ah! Mas você não quer deixar de ver o arquivo que você está editando enquanto navega pelas tags?

Control+W_Control+]

Isso splittará a janela em duas horizontalmente.


Identificando funções e variáveis sem instalar nada a mais no seu Vim.

Em algumas situações, esta feature é bem mais interessante e útil do que ctags. Mas apenas em algumas situações. Entre em modo de comando e posicione o cursor sobre uma função ou variável que deseja descobrir a declaração e aperte:

Control+W_

Você splittará a janela em duas horizontalmente e pulará para a declaração. Se for uma função, irá para o header (.h). A vantagem de usar Control+W_ é que você poderá ver declarações mesmo em funções da glibc: malloc, printf e afins.

Espero que sejam úteis as dicas. Aguardem que ainda tem mais!

3 comentários:

Unknown disse...

Hehehehe, vim maniacos por ai :P

Dica bem útil :)

Sergio disse...

Outra dica legal para abrir arquivos é posicionar o cursor sobre o arquivo e digitar (em modo normal) gf (se não funcionar veja :help path)

Segunda dica:
para ver definições de função use gd gD (para mais detalhes :help gd)

para entrar em modo de inserção no ponto da última edição gi

Para repetir a última seleção visual gv

Para posicionar o cursor no início da seleção visual 'o' de óculos

visite nosso blog:
http://vivaotux.blogspot.com

:wq

Sergio disse...

Descobri também como visualizar o conteúdo de variáveis

[i ........ conchete + i

pula para primeira linha que contém a palavra sob o cursor