O “vimrc” de um programador “c/c++”

Programar no vim?!?!

Para a maioria das pessoas que não conhecem o vim, a idéia de programar c/c++ nele parece absurda.

Só que, quando mais ando nesse mundo, vejo que preconceito é uma coisa muito feia, e que ferramentas nunca devem ser desvalorizadas. Principalmente o vim, que quem usa sabe que é um editor fantástico de texto.

Aqui eu devo mostrar algumas coisa que eu aprendi que deixam o vim pronto ainda mais para se programar em c/c++, e também uma copia do meu “vimrc” para facilitar se alguem quiser usar xD.

Irei comentar e recomendar alguns plugins interessante para programadores c/c++, para que você possa: Autocompletar no vim, ter backups de arquivos de forma incremental, como alternar de um arquivo .h para um .c e vice-versa de forma rápida, transformar o gvim numa IDE completa e todos as coisas que um vim pode oferecer para que você comece a programar em “c/c++” de forma mais eficiente.

Primeiro, vou falar de alguns plugins, não me concentrando em como instala-los. Quando estiver falando sobre o plugin, passarei o link para a pagina de download do plugin, e lá você poderá baixar e ver como instalar o plugin. No final, vou deixar o meu .vim e meu .vimrc para que quem quiser possa usar, assim como instalar o meu vimrc.

Bom, então vamos aos melhores plugins!!

Transformando o seu gvim numa IDE: c.vim

Pagina do plugin

Screenshots

Quer que seu gvim se transforme em uma IDE visual completa de c/c++? Isso é possível, basta ver os screenshots acima ;).

O vim tem um plugin que transforma o transforma em uma IDE c/c++ completa. Seja com opção de colocar comentário automaticamente, rodar make ou rodar o seu programa, lá vai estar.

Na pagina do plugin, ele tem alguns screenshots para quem não acredita :p. Você pode que realmente ele tem coisas uteis e as funções que você espera de qualquer IDE.

Existem vários templates de arquivos, funções, classes(de erro, função template….) e outras templates que podem ajudar a deixar seu código mais amigável e organizado. Recomendo dar uma olhada no menu “C/C++” e “Ferramentas” para ver do que o plugin pode fazer. Se você der uma explorada, você pode descobrir coisas que você nunca tinha visto e legais. Aconteceu isso comigo xD.

Também é interessante modificar o arquivo:

~/.vim/c-support/templates/Templates

Fazer com que o vim autocomplete suas funções,métodos, classes e etc… : OmniCppComplete

Pagina do plugin

Screenshots

O que dizer sobre esse plugin? Somente que ele é uma mudança de vida.

Como você podem ver nos screenshots, esse plugin faz com que você possa autocompletar as suas classes, funções, métodos, namespaces e qualquer outra coisa de c/c++. E através desse plugin que o seu vim fica uma IDE definitivamente, junto com o primeiro plugin(c.vim).

Com esse plugin, se você apertar “CTRL+N“, você digitar “.” depois de digitar o nome de um objeto ou “::” depois de um namespace, o vim abre uma janela com varias opções de possíveis complementos para o que você deseja colocar. Todo esse procedimento e bem natural, e pode ser visto nos screenshots.

Um grande problema desse plugin é que esse plugin só autocompleta com base em um arquivo de tags já existente, que e criado com o exuberante “ctags”. Mas, se você que esta lendo esse post pegar o meu vimrc no final, não precisara se preocupar com isso. Alterei o meu vimrc para que quando eu salve ou abra um arquivo c/c++ ele já gere as tags automaticamente.

Alternar entre arquivos de bibliotecas (.h,.hpp,…) para fontes(.c,.cpp,…): a.vim

Pagina do plugin

Para aqueles que querem maximizar a sua velocidade enquanto programa, esse plugin é maravilhoso ;).

Esse plugin permite que você alterne entre código-fonte e bibliotecas(e vice-versa) com apenas algumas teclas. Sabemos que quando você esta editando um arquivo, você precisa se se mover entre o seu correspondente .h ou .c com muito frequência. E chato que você saia do arquivo, abra o outro arquivo e comesse a editar, por isso esse plugin é excelente.

O Visual C++, a IDE da ms, também tem algo parecido com esse plugin. Ou seja, roubaram a idéia do vim ;). O rapaz que usou o VC com o plugin, na hora que estava dando a palestra elogiou o complemento e me lembrei que ele tinha vindo do vim. Isso mostra que nesse mundo nada se cria…..

Para usar é simples. Para o uso mais simples, você apenas tem que digitar :A no modo de comando do vim. Simples e pratico, como esse plugin se propoem.

Para mais usos( como abrir o arquivo em uma nova janela no vim 😉 ), veja a Pagina do plugin.

Usar um sistema de versionamento no seu código: vcscommand.vim

Pagina do plugin

Sistemas de versionamente (svn, cvs, git, mercurial….) são comuns hoje em dia e cada vez mais necessários.Algumas IDE portanto já vem com suporte a esses sistemas em suas interfaces ou através de plugins.

Então, obviamente, o vim, pai de todas as IDE e idéias de plugins, também tem um plugin para isso. E ele se chama vcscommand.vim.

Com esse plugin você pode fazer todas as operações de um sistema de versionamento dentro do vim. Vou dar uma lista breve de comandos:



Para mais comandos, no seu vim faça “:help vcscommand” quando você tiver instalado o plugin.

Se você usa a interface gráfica do vim(gvim), procure no menu “plugins“. Lá você tem todos os comandos que esse plugin tem.

Facilitando a documentação com o DoxyGen: DoxygenToolkit.vim

Pagina do plugin

Programadores tem que documentar, essa é a regra. Para “c/c++“, temos um otimo sistema de documentação, o doxygen. Esse plugin facilita a vida de que deseja documentar o seu codigo usando o doxygem.

Na pagina do plugin você pode encontrar mais informações, mas basicamente ele tem comando que se executados geram começos de bloco de documentação para função, metodos e outras coisinhas. Para que ele faça isso, você deve executar “:Dox“, ai depois é só preencher o resto da template que o plugin gera.

Ele também gera a licença com o comando “:DoxLic“.

E existe o comando de gerar o autor do codigo de forma rapida também, com o comando “:DoxAuthor“. Ele só ira pedir o nome do autor, e depois você pode preencher o resto da templete gerada.

Considerações Finais

Todos esses plugins deixam o vim pronto para programar de forma eficiente. Mas, ainda é possível fazer ainda mais umas customizações para deixar melhor ainda ;). Para isso, eu estou disponibilizando o meu .vimrc e meus plugins(todos os acima é mais alguns) e vou falar o que tem nele:

Meu .vimrc

Para “instala-lo”, e só descompactar no home do seu usuário:

cd ~
tar -xvf vim.tar.bz2

Tome cuidado, se você tiver algo no seu ~/.vimrc, ele sera sobre escrito. Nesse caso, é melhor concatenar os arquivos.

Quando você tiver descompactado, todos os plugins que eu mencionei acima estaram instalados no seu vim, é ainda terá algumas configurações extras.

Toda vez que você abrir um código em c/c++, também sera colocado ao lado números, como em uma IDE.

Agora, as seguintes teclas fazem as seguintes ações:

F5 => Faz commit do seu código.

F6 => Gera um html colorido do seu código(útil para colocar em um site).

F7 => Grifa as palavras que estão possivelmente escritas erradas.

F8 => mostra possíveis alternativas para corrigir uma palavra possivelmente errada.

Pronto! Agora quem quiser programar em c/c++  no vim já pode baixar o meu .vimrc e sair programando!!

 

Advertisements

4 responses to “O “vimrc” de um programador “c/c++”

  • name

    muito bom, mas isso tudo funciona para o vim normal (sem gui – gvim)?
    <br />bom artigo !

  • Messias

    Como fa&ccedil;o para entrar em contato com voce?

  • psychomantys

    Bom, meu e-mail é:
    psycho.mantys (.at,.) gmail dot com

    para evitar spam:
    (.a,t.) = @
    dot = .
    Substitua ai e me mande um e-mail 😉

  • psychomantys

    A maioria dos plugins funciona certinho sem o gvim.

    Mas, sem o gvim vc não tem acesso aos menus de cima do gvim, ai vc vai ter que lembrar das teclas de atalho(por exemplo, ":make" para dar make).

    O plugin de autocompletar funciona pq a janela de escolha que ele abre é em modo texto.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: