terça-feira, 27 de fevereiro de 2007

Vim e diffsplit: Diversão garantida programando!

Acredito que muitos de vocês conhecem o comando diff. Ele mostra a diferença entre dois arquivos em uma forma não muito fácil de se ler. Seu formalismo as vezes pode confundir e dificultar naquela hora de pegar um bug chato. Eu mesmo não entendo muito bem como diff funciona :-\ , pensei então em fazer algo mais visual e legível. Você, leitor computeiro, já vai pensar: Mas tem o tkdiff! O gtkdiff! O kdiff! O insira_aqui_sua_lib_predileta_diff... Muitos deles! Mas, já que estamos com o vim aberto, vamos aproveitar e fazer algo de útil por aqui mesmo, nada de mouses! :-P Just screen!

Primeiro vejamos as diferenças entre os arquivos exemplo manualmente:

otubo@lisa /tmp/example $ cat helloworld.c
#include
int main(){
printf("Hello World!!!\n");
return 0;
}

otubo@lisa /tmp/example $ cat helloworld2.c
#include

int main(){
printf("Hello Vimmers!!!\n");

return 0;
}
Agora, vamos editar helloworld.c. Uma vez dentro do ambiente vim, entre em modo de comando e digite:

:vert diffsplit helloworld2.c

Você deve ver algo assim:
Como você pode ver, as diferenças entre os arquivos são completamente gráficas e fáceis de vizualizar :-) Obviamente, nosso exemplo não mostra todo o poder real que essa ferramenta possui, mas quando estiver trabalhando com projetos grandes, complexos e cheios de bugs malas a serem rastreados, verá que será um grande amigo.