Como (e por que) eu uso Vim

Vim em ação

A discussão sobre qual é o melhor editor de texto é antiga entre os programadores. Existem diversas opções, sendo algumas das mais famosas: Atom, Sublime, Brackets, Visual Studio, Notepad++, TextWrangler, Emacs, Vim… As opções são muitas. Algumas tem funções mais de IDE (ambiente integrado de desenvolvimento), outras são mais básicas e simples, como um bloco de notas padrão.

Aqui no Campus Code somos em 8 desenvolvedores, atualmente, e praticamente todos usamos Vim como nossa ferramenta de desenvolvimento. Temos uma configuração padrão que você pode conferir aqui.

Este post não é para falar qual é o melhor editor ou IDE, mas sim para falar um pouco das vantagens que encontrei ao usar o Vim, por que o utilizo e como você também pode utilizar.

Primeiro, um pouco de história…

Vim (Vi IMproved) é um clone melhorado do editor Vi. Ele é open source e foi lançado em 1991. Para iniciá-lo, basta digitar vim em seu terminal (Linux ou Mac OS). Você vai se deparar com uma tela semelhante a essa:

A tela inicial do Vim

E agora, o que eu faço?

Se você não tem a mínima ideia de como mexer no Vim, você não está sozinho. Nesta semana o Stack Overflow anunciou que a pergunta “Como sair do editor Vim?” atingiu a marca de 1 milhão de visitas. Em outras palavras, 1 em cada 20 mil pessoas que acessam o site só estão procurando como sair do Vim.

É só digitar :q e dar Enter, sério

Como você pode ter percebido, o Vim não possui interface gráfica e nem suporte a mouse, portanto toda sua navegação deve ser feita através do teclado. Isso é mais fácil do que parece, mas exige um pouco de prática.

Para abrir um arquivo no Vim você deve digitar vim <caminho_para_o_arquivo> no seu terminal. Se quiser abrir a pasta inteira que você está navegando, vim .

O Vim foi construído pensando que, como desenvolvedores, passamos grande parte do tempo editando texto, e não necessariamente escrevendo coisas novas. Por isso ele possui 2 modos principais: Normal (navegação) e Inserção.

Modo normal:

O modo é sinalizado por uma barra abaixo do editor

Quando você acessa o Vim pela primeira vez ele entra nesse modo, por padrão. A navegação é feita pelas teclas h (esquerda), j (baixo), k (cima) e l (direita). Você até pode navegar pelas setas, porém só pelo fato de ter que tirar a mão das letras para chegar à elas faz com que a navegação alfabética seja mais eficiente.

Alguns outros comandos importantes:

w move o cursor até o começo da próxima palava

e move até o final da próxima palavra

b move até o começo da palavra anterior

x apaga o carácter em que o cursor está

u desfaz a última alteração

<ctrl>+r refaz a última alteração desfeita

v acessa o modo visual (para seleção). Para selecionar, navegue através das letras ou setas, e o texto selecionado ficará de outra cor.

y copia o que estiver selecionado no modo visual. Também pode ser usado em conjunto com outros comandos, por exemplo: yw copia a palavra seguinte, yy copia a linha em que o cursor está.

d apaga o que estiver selecionado no modo visual. Assim como o y também pode ser usado em conjunto com outros comandos.

c apaga o que estiver selecionado e abre o modo Inserção para edição. Como os comandos acima, também pode ser usado com outros comandos.

Modo Inserção

Quando a barra inferior estiver como INSERT, você pode escrever

Ao digitar i você entra no modo de inserção. Como o próprio nome diz, é nele que você poderá inserir, ou seja, escrever o que quiser. Aqui o editor funciona como qualquer outro, e dependendo da sua configuração pode ter desde opções de autocomplete até atalhos para criar tags HTML como o Emmet.

Emmet-vim em ação digitando <ctrl>+y

Para sair do modo de inserção, basta apertar ESC. Para mim, a melhor maneira de trabalhar é alternar entre esses dois modos.


Outros comandos

No modo Normal:

:e <caminho-para-arquivo> abre um arquivo.

:w salva o arquivo atual.

:q fecha o arquivo (e o Vim).

/palavra encontra as ocorrências de palavra no arquivo. Tecle Enter para ir para a palavra, n para navegar para a próxima ocorrência ou N para a anterior.

:%s/foo/bar/g substitui foo por bar em no arquivo inteiro. Veja aqui outras opções de substituição.

g10 pula o cursor diretamente para a linha 10 (por exemplo).

gg pula o cursor para a primeira linha do arquivo.

G navega para a última linha do arquivo.


Essas são apenas algumas dicas básicas. Começar a usar o Vim exige paciência e persistência, mas pelo menos para mim valeu a pena, pois aumentou bastante minha velocidade de trabalho.

No próximo post falarei um pouco mais sobre os atalhos que temos configurados em nossos dotfiles e como você pode agregar o Vim ao Tmux para ter uma ferramenta ainda mais completa. Fique ligado!