Aprendendo VIM

10 08 2010

Quando comecei a estudar Ruby on Rails, a primeira coisa que procurei foi uma IDE.

Anos trabalhando no Visual Studio tornaram inconcebível a idéia de desenvolver sistemas sem ter um ambiente integrado com debug, editor visual e de código, wizards, integração com controle de versão etc.

Antes trabalhar com .NET eu tinha longos anos trabalhando somente com editores de texto, tanto em PHP quanto em ASP e PL/SQL. Voltar a usar um simples editor me parecia um retrocesso. Procurando por uma experiência no mínimo semelhante ao VS, encontrei o RubyMine que foi o que me fez sentir mais “em casa”. Fiz muito dos meus aplicativos de estudo nele, e não tinha do que reclamar. O autocomplete estava lá, debug, integração com controle de versão, code highlight…

Mas os desenvolvedores ROR mais famosos não o usavam. Estavam todos divididos entre o TextMate e o (G/Mac)VIM. Li um pouco sobre o TextMate e os bundles não me empolgaram, não havia nada de novo ali para mim. O TextMate faz o que a maioria dos editores avançados faz (até onde minha pesquisa chegou, pelo menos), e a obrigatoriedade de usar o OSX matou qualquer possibilidade de usá-lo.

Já o VIM, era um velho conhecido. Sabe aquele cara que você encontra todo dia no trabalho e cumprimenta, mas não sabe nem o nome e nem em que trabalha? Esse era o VIM pra mim. Nos encontramos no Linux, no Solaris e no BSD mas sempre foram encontros rápidos. Nada além de abrir um arquivo, apertar “i”, editar algumas linhas, ESC, :wq! e adeus editor bizarro. Instalar o nano, quando possível era o que eu fazia, afinal era um editor normal que eu conseguia usar naturalmente. Porém, todo post que eu lia sobre o VIM falava maravilhas. O ganho de produtividade era imenso, as tarefas mais complexas eram triviais.

O Akita fez um post onde ensinava a deixar o VIM pronto para o desenvolvimento em Rails que eu decidi seguir e….

… realmente o bicho ficou bonitinho! Mas continuava bizarro. Ficar alternando entre modos não era nada natural e eu mais uma vez, desencanei.

Continuei meus estudos e num dia falando com o Leo, pedi para ele mostrar o uso do VIM. Puxamos a config dele do github, configuramos e realmente, algumas coisas pareciam amigáveis e sem dúvidas muito inteligentes. Havia muito pra aprender, muitas funcionalidades estavam em plugins e integrações com outras ferramentas.

Passei a usá-lo como editor principal, não só em Rails, e procurando na internet, no livro free tudo que não sabia fazer fui aprendendo a me virar. A curva de aprendizado é grande. Grande não, imensa! No início, tudo parece disperdício e perda de tempo. São muitos comandos para fazer tarefas simples, que num editor comum seriam triviais. Afinal, você está acostumado a apertar uma tecla, e a letra aparecer na tela.

Eu não sou nenhum pioneiro na migração para Rails. Muitas pessoas que eu acompanho dos tempos de .net também estão no mesmo caminho, muitos também começaram a usar o VIM como editor principal. Um caso em especial, é o do Rob Conery, um cara que eu sempre admirei pelo modo de pensar e pela qualidade do código. Em alguns posts recentes, ele falam sobre a experiência com o VIM. A comparação do VIM com cerveja é genial!

Enfim, o investimento tem se pagado, tenho me tornado cada dia mais produtivo. Passo então a ser mais um dos que diz: Cerveja é uma delícia! (leia o post do Conery!) Eu sei que você acha amarga e acha bizarro que eu e um monte de gente tome com tanto prazer.

Talvez provando você também possa entender os motivos. Eu vou compartilhar em alguns posts curtos a solução de alguns problemas que for encontrando no dia a dia (Com VIM, não com cerveja) e espero que sejam de alguma utilidade.

Seguem algumas fontes para pesquisa/estudo:

Vim 101 (dicas)
http://twitter.com/vim101

VimCasts
http://vimcasts.org/

PeepCode
http://peepcode.com/products/smash-into-vim-i
http://peepcode.com/products/smash-into-vim-ii

vimbook (Livro sobre o Vim em português)
http://code.google.com/p/vimbook/

Vim Tips Wiki
http://vim.wikia.com/wiki/Vim_Tips_Wiki





PowerCommand – Visual Studio Extension

5 11 2008
    Mais um post de Extension para Visual Studio. Sempre gostei de sharear o conhecimento com relação a shortcuts diversos (do windows, da ide do VS, etc).Infelizmente o PowerCommand só existe para VS 2008.

    Página da Extension: PowerCommand

    Download: PowerCommand 1.1

    Após instalar (next,next,next ….) uma nova opção aparece no menu do Visual Studio: Tools -> Options-> PowerCommands

    clip_image001

    Em General temos essas duas opções interessantes:

    Format document on save – formata um arquivo ao salvar: remove espaços em brancos, arruma tabulação, etc;

    Remove and Sort Usings on save (SÓ COM C#) – o próprio nome já diz, ao salvar um documento remove os namespaces não utilizados e sorteia por nome o restante;

    Em Commands é possível desabilitar ou habilitar as opções do PowerCommands:

    clip_image002

    Alguns comandos interessantes:

    Copy Path: copia para o buffer o caminho do arquivo selecionado

    clip_image003

    Open Command Prompt: abre um prompt direto no path do arquivo selecionado

    clip_image004

    Remove and Sorting usings: é possível remover os namespaces não usados e sortear os demais de toda solução com um só comando:

    clip_image005

    Email CodeSnippet: abre o client padrão de e-mail instalado com o código copiado em uma nova mensagem.

    clip_image006

    Para mais detalhes, baixem o readme que está na página de download que contém exemplo dos demais comandos.

    Espero que isto ajude a melhorar a produtividade de quem ainda não conhece esta Extension.





Visual Studio Source Code Outliner Power Toy

5 11 2008

O que é: uma extension para o Visual Studio (2008/2005) que permite visualizar o código fonte de um determinado arquivo no formato de treeview.

Onde baixar: http://www.codeplex.com/SourceCodeOutliner

Links Diretos: VS 2008 | VS 2005

No exemplo abaixo, criei um projeto do tipo ASP.NET MvcApplication (beta1) que já vem com algumas coisas programadas.

Para abrir o Source Code Outliner, ir no menu View -> Other Windows -> Source Outliner Power Toy ou utilizar a shortcut Ctrl+], Ctrl+o

image

Selecionei a classe Controllers/AccountController.cs e criei duas variáveis na mesma:

private string teste = “”;
private string teste2 = “”;

(apenas para visualizarmos as variáveis do escopo da classe no Source Outliner, já que não existia nenhuma por default).

clip_image004

Na janela do Source Outliner é possível navegar por todos os itens. Ao clicar sobre um item o mesmo é posicionado na janela de código.

É possível ainda filtrar por alguma palavra específica e/ou pelo tipo de elemento a ser buscado (classe, variável, etc) conforme mostram as figuras abaixo:

clip_image006clip_image008

Conclusão: agiliza bem o processo de navegação dentro de um código fonte. Uso e recomendo.