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

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.nvim combinado com telescope-file-browser.nvim para busca rápida de arquivos e navegação direta em diretórios.
  • Explorador de Arquivos: nvim-tree com ícones do nvim-web-devicons para uma árvore de arquivos interativa e estilosa.
  • Realce de Sintaxe Avançado: nvim-treesitter para syntax highlighting poderoso e suporte avançado a várias linguagens.
  • Autocomplete com LSP: nvim-cmp integrado ao Language Server Protocol para completar código de forma inteligente e eficiente.
  • Barra de Status Personalizável: lualine.nvim para uma barra de status dinâmica e personalizável.
  • Integração com Git: gitsigns.nvim para visualizar mudanças no código e interagir com o Git diretamente no editor.
  • Depuração Avançada: nvim-dap para 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.