Pontos que mais utilizo com o Vim

Para quem não sabe, o Vi é um antigo editor de texto mas que é vastamente utilizado até hoje por conta dos seus super poderes e customização. Comecei a utilizá-lo o Vim (Vi Improved) quando trabalhei na Myfreecomm graças a ajuda do Flávio Amieiro. Hoje em dia sou um defensor do editor e faço propagandas dele quando dá.

Faz um tempo e alguns amigos meus me pediram dicas sobre o Vim e ajuda para começar a utilizar e aprender a manipular melhor o editor. Para isso, eu sempre passava o endereço do meu repositório com meus arquivos de configuração e explicava o que eu utilizava. Como já me cansei de fazer isso, resolvi fazer esse post para mostrar o que eu uso com mais frequência quando estou trabalhando com o Vim.

1 – NerdTree Plugin

Esse eu acredito que seja um must-have do Vim. Basicamente você ganha o poder de visualizar a árvore de arquivos a partir do diretório que você está. Isso é bom porque você pode fazer busca de arquivos, navegar por diretórios e abrir arquivos de maneira mais rápida. Você pode instalá-lo seguindo essas instruções. A única coisa de diferente que fiz foi mudar o mapeamento da exibição da árvore.

2 – Code Fold

Eu me confundo muito quando tem muito código em um arquivo e eu só preciso trabalhar em uma parte dele. Para resolver esse problema utilizo uma função que faz esconde o código respeitando a sua identação. Acredito que essa seja a função que eu mais utilize do meu vimrc. Para utilizá-la, é só copiar essa parte de código para o seu vimrc e utilizar espaço quando fora do modo de edição.

3 – Tab completion

Existem ferramentas mais eficientes para fazer o tab completion de linguagens, mas eu gosto da função que utilizo exatamente por ela não ser guiada por nenhuma linguagem de programação. Basicamente ele utiliza o que já foi escrito no próprio arquivo para fazer avaliações de possíveis complementos, ou seja, ele assume que o que você vai utilizar, provavelmente já foi escrito. Acho essa abordagem bem interessante porque limita bastante o número de possibilidades e
evita listas gigantescas de alternativas. O código para essa função está aqui.

4 – Closetag

Esse é um script simples que faz um map para fechar tags HTML automaticamente. Assim, depois de criar o conteúdo de uma tag, apenas faço um CONTROL + _ e essa tag está fechada. Parece bobo, mas é uma mão na roda! Para utilizar é só colocar essas linhas no seu vimrc e copiar esse arquivo para o diretório .vim/scripts/.

5 – Ipython Debugger instantâneo

O último item da lista é a função Python que fiz como experimento para inserir e remover breakpoints para fazer debug de código Python. Já fiz um post falando sobre essas funções, então se quiserem saber como utilizar é só olhar lá.

Esses são os 5 pontos que mais utilizo. Ainda existem outras coisas, mas esses são os que utilizo praticamente todo dia que abro o Vim para trabalhar. Como bonus vale dar uma olhada nos mapeamentos de teclado para de navegação e manuseio de mais de uma janela que utilizo dentro do Vim.

Se você está começando, também aconselho o post Aprenda Vim Progressivamente que é original do Yann Esposito, mas que o Tarsis Azevedo fez uma ótima tradução.

Compartilhe nos comentários os seus plugins e maneiras de utilizar o Vim que eu não compartilhei nesse texto para iniciarmos uma rica discussão! Até a próxima!

Share on Facebook
Post to Google Buzz

9 Thoughts on “Pontos que mais utilizo com o Vim

  1. Outro dia achei um plugin para fazer o Zen HTML no vim. Sensacional. Facilita muito escrever um html. E parabéns pelo seu artigo. Gostei e já copiei a função de complete que você fez.

  2. Muito essas dicas Bernado!

    Um plugin que recomendo para front-end e que uso muito é o Sparkup, que insere o Zen Coding no Vim.

  3. Sua função não teria a mesma finalidade do CTRL+N do vim em modo de inserção?

    • Vinicius, você tem razão! Eu nem conhecia essa do CTRL + N em modo de inserção e valeu pela dica já. Essa função não é minha e foi uma das primeiras que eu peguei para utilizar no Vim. Acho que é por costume, estou acostumado com a utilização do CTRL + Tab. Mas talvez adicionando o mapping eu nao tenha mais a necessidade dela.

  4. Elias Tandel Barrionovo on 19/03/2012 at 19:32 said:

    O que essa ToggleFold() faz de especial? Porque o próprio vim tem suporte nativo a code folding. Meu .vimrc tem isso aqui (baseado em [1]):

    set foldmethod=indent “fold based on indent
    set foldlevel=1
    set foldnestmax=10 “deepest fold is 10 levels
    set nofoldenable “dont fold by default

    [1] http://smartic.us/2009/04/06/code-folding-in-vim/

  5. rafaeldx7 on 20/03/2012 at 18:57 said:

    Pra gerenciar as minhas configs do VIM eu uso o projeto Janus (https://github.com/carlhuda/janus). Achei bem interessante a proposta deles e passei a usar.

    E acho engraçado como todos mundo gosta do NerdTree. Eu acho horroroso. :)

  6. Eu to usando mto o plugin ctrl+p, que é um find igual ao do sublime. xD

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation