Se você é programador, provavelmente já ouviu falar do Vim ou do seu sucessor, o Neovim. Talvez tenha até aberto por acidente e se desesperado ao não conseguir sair dele. Apesar da fama de “editor difícil”, conhecê-lo vai muito além de uma habilidade de nicho. Trata-se de uma ferramenta poderosa, leve e extremamente produtiva que pode mudar a forma como você escreve código — mesmo que você não o utilize como editor principal.
O que é isso?
Vim (Vi IMproved) é um editor de texto modal, baseado no clássico vi, presente em praticamente todos os sistemas Unix/Linux.
Neovim é uma reescrita moderna do Vim, com foco em modularidade, extensibilidade e desempenho, oferecendo uma experiência mais fluida para desenvolvedores modernos.
Por que todo programador deveria conhecê-los?
1. Onipresença
O Vim está instalado por padrão em quase todas as distribuições Linux e sistemas Unix-like. Em situações de emergência (como acesso a servidores via SSH), saber usar Vim pode ser a diferença entre resolver um problema ou ficar travado.
2. Produtividade com atalhos
Vim foi projetado para manter suas mãos no teclado. Sem precisar usar o mouse, você ganha agilidade com comandos que permitem:
h, j, k, l # mover o cursor (esquerda, baixo, cima, direita)
w / b # pular palavras para frente ou para trás
dd / yy # deletar ou copiar linha
p / P # colar depois ou antes da posição atual
3. Customização poderosa
Configure completamente via .vimrc (Vim) ou init.lua (Neovim), criando atalhos, alterando aparência, comportamento e muito mais.
4. Extensibilidade com plugins
O Neovim se destaca especialmente nesse ponto. Com suporte moderno a plugins em Lua, Python e outras linguagens, é possível transformar o editor em um verdadeiro IDE minimalista e veloz.
Funcionalidades básicas que todo programador deve conhecer
Modos principais:
- Normal: Navegação e comandos.
- Insert: Edição de texto (
i,a,o). - Visual: Seleção de texto (
v,V,Ctrl+v). - Command-line: Para salvar, buscar, sair etc (
:).
Comandos essenciais:
i # entra no modo de inserção
:w # salva
:q # sai
:wq # salva e sai
u # desfaz
Ctrl + r # refaz
Produtividade Real: Navegar e Editar como um Ninja
Navegar até um caractere específico:
f( # vai até o próximo parêntese na linha
t" # vai até antes da próxima aspas
F= # volta até o símbolo de igual
; # repete a última busca
GIF demonstrando navegação (placeholder)
Deletar grandes blocos de texto:
dG # deleta até o final do arquivo
dgg # deleta até o início do arquivo
d} # deleta até o próximo bloco
d/<palavra> # deleta até a palavra buscada
dtx # deleta até antes do caractere x
GIF demonstrando variações do comando de delete (placeholder)
Combinação de movimento + ação
d3w # deleta 3 palavras
y} # copia até o final do parágrafo
c$ # muda do cursor até o fim da linha
E se quiser transformar em um IDE?
Com Neovim, Lua e uma seleção poderosa de plugins, você pode criar um ambiente de desenvolvimento moderno, elegante e super funcional. Aqui estão alguns exemplos baseados na sua configuração:
- Navegação Inteligente:
telescope.nvimcombinado comtelescope-file-browser.nvimpara busca rápida de arquivos e navegação direta em diretórios. - Explorador de Arquivos:
nvim-treecom ícones donvim-web-deviconspara uma árvore de arquivos interativa e estilosa. - Realce de Sintaxe Avançado:
nvim-treesitterpara syntax highlighting poderoso e suporte avançado a várias linguagens. - Autocomplete com LSP:
nvim-cmpintegrado ao Language Server Protocol para completar código de forma inteligente e eficiente. - Barra de Status Personalizável:
lualine.nvimpara uma barra de status dinâmica e personalizável. - Integração com Git:
gitsigns.nvimpara visualizar mudanças no código e interagir com o Git diretamente no editor. - Depuração Avançada:
nvim-dappara configurar e executar depurações diretamente no Neovim.
Com essa combinação, seu Neovim se transforma em um ambiente completo e produtivo, rivalizando com qualquer IDE moderna.
Destaque Brasileiro: O Poder da Lua 🇧🇷
Uma das maiores evoluções do Neovim foi a adoção da linguagem Lua como base para sua configuração e extensão. E aqui está o detalhe mais especial:
Lua é uma linguagem brasileira, criada na PUC-Rio por Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes.
Hoje, Lua é usada em jogos, sistemas embarcados e também no Neovim, permitindo:
- Configurações mais legíveis e poderosas.
- Execução mais rápida de plugins.
- Modularização clara e profissional.
Exemplo simples de configuração com Lua:
vim.opt.number = true
vim.opt.relativenumber = true
vim.keymap.set("n", "<leader>pv", vim.cmd.Ex)
Conclusão
Mesmo que você nunca use Vim ou Neovim como editor principal, conhecer seus comandos básicos e filosofia vai elevar seu nível como programador:
- Mais agilidade no terminal e servidores remotos.
- Edição eficiente sem mouse.
- Customização avançada com uma linguagem brasileira: Lua.
- Aprendizado de conceitos aplicáveis a outras ferramentas (como atalhos de IDEs inspirados no Vim).
Aprender Vim não é sobre nostalgia. É sobre poder.