VIM e C++

Desde que comecei a usar Qt, C++ é a principal linguagem de programação que uso no meu dia a dia. Alguns dos meus colegas de trabalho recentemente trocaram o VIM pelo QtCreator alegando que o auto-completion (aquela feature que completa nome de métodos, atributos, etc e no mundo do MS Visual Studio é conhecido como “intellisense”) no QtCreator é killer.

A extensão do VIM chamada  Omni Completion fazia a mesma coisa de forma satisfatória quando usando C, mas o fato é que nunca me acostumei a usar isso: ctags + rápida olhada nos headers eram o suficiente até então, mas foi quando o Qt e suas classes com milhões de atributos e métodos chegaram na minha vida. Hoje, enquanto queimava uns neurônios tentando lembrar o nome de um método da classe QSomething eu tive a brilhante idéia de usar  auto-completion do VIM (porque não?). Decepcionado, descobri que o Omni Completion não suporta C++ nativamente.

O Oráculo me disse algo a respeito de um add-on chamado OmniCppComplete. Poucos minutos foram o suficiente para instalar e ver quão legal é o plugin. Apenas o pop-up automático sugerindo nome de atributos que é irritante, mas pode-se facilmente desabilitá-lo e usar o bom e velho ^X^O sob demanda.

É claro que não há nada novo aqui (a primeira versão do OmniCpp data de 2006), mas você pode ser como eu, receoso em relação a testar novos add-ons do VIM, porque a maioria é lixo. Apenas poucos merecem a honra de estar no meu .vimrc. Este post portanto é para encorajar usuários do VIM a dar uma chance ao OmniCpp e se tornar mais efetivo.

OmniCppComplete in action

OmniCppComplete em ação

Postado em abril 22, 2009 às 18:12 por Thiago · Link permanente
Em: desenvolvimento, en · Com as tags: , ,

6 Respostas

Acompanhar os comentários via RSS

  1. Escrito por milton
    em abril 22, 2009 às 20:24
    Responder · Link permanente

    Rato, esqueceu de colocar na categoria ‘nerd’, não apareceu nem no meu nem no planet do salveti.

    L :-)

  2. Escrito por milton
    em abril 22, 2009 às 20:25
    Responder · Link permanente

    Just testing gravatar stuff, seems cool :-D

  3. Escrito por Bruno Abinader
    em abril 23, 2009 às 10:34
    Responder · Link permanente

    O Qt Creator possui um plugin muito bacana, para quem é acostumado a utilizar o Vim: Fakevim. Ele simula os comandos de teclado que estamos acostumados a utilizar no vim dentro do editor :D Eu particularmente gostei do Qt Creator pelos seguintes fatores:

    1. Auto-completion: Rápido, prático e simples.

    2. Compilation warnings: Toda vez que a compilação aponta um warning ou error, um link é criado diretamente para a posição no código onde esse erro ocorreu, agilizando o trabalho de depuração e conserto do erro.

    3. Integração com o GDB: Para ativar um breakpoint, basta dar um clique no início da linha no código e depois rodar a aplicação. Além disso, o debugger integrado é otimizado para mostrar a hierarquia interna do Qt (QObjects).

    4. Integração com suporte a documentação: Toda vez que eu quero a documentação sobre um determinado método, atributo ou classe, eu simplesmente pressiono F1 em cima da palavra e um pop-up lateral é aberto contendo a documentação relacionada

    5. Facilidade na geração de builds e runs customizados: O Qt Creator facilita o processo de build, como a customização das variáveis de ambiente e parâmetros passados para o qmake e make.

  4. Escrito por Jorge Pereira
    em abril 26, 2009 às 14:34
    Responder · Link permanente

    Publica o seu vimrc então! :)

  5. Escrito por Marcelo Grassi
    em abril 29, 2009 às 04:06
    Responder · Link permanente

    O mandark não larga mesmo o Vim ! hehe!

  6. Escrito por milton
    em julho 3, 2009 às 13:24
    Responder · Link permanente

    @jorgepereira Só a parte que interessa então :-)

    augroup cpp
    au BufRead,BufNewFile *.cpp set tags+=$HOME/.vim/qt.tags
    au BufRead,BufNewFile *.cpp let OmniCpp_MayCompleteDot = 0
    au BufRead,BufNewFile *.cpp let OmniCpp_MayCompleteArrow = 0
    augroup end

Acompanhar os comentários via RSS

Deixe uma Resposta