O que é Neovim?
Neovim é um editor de texto hiper-extensível, baseado no Vim, que visa modernizar e melhorar a experiência clássica do Vim. Lançado em 2014 como um fork do Vim, o Neovim evoluiu desde então para um projeto independente com sua própria identidade e trajetória de desenvolvimento. Enquanto mantém plena compatibilidade com o modelo de edição do Vim, o Neovim introduz uma base de código mais manutenível, melhores configurações padrão e uma arquitetura robusta de plugins que aproveita a execução assíncrona.
Em sua essência, o Neovim preserva a filosofia de edição modal que tornou o Vim lendário entre desenvolvedores e usuários avançados. Essa abordagem separa a edição de texto em diferentes modos - principalmente o modo normal para navegação e comandos, o modo de inserção para digitar texto e o modo visual para selecionar e manipular blocos de texto. Essa separação permite uma manipulação de texto incrivelmente eficiente após ser dominada, permitindo que os usuários editem texto na velocidade do pensamento, em vez da velocidade das teclas digitadas.
O Neovim se destaca dos editores de texto tradicionais através de sua extensibilidade. Ele fornece suporte de primeira classe para servidores de linguagem por meio do Protocolo de Servidor de Linguagens (LSP), emulação de terminal embutida e uma interface de script Lua que permite aos desenvolvedores criar plugins poderosos com o mínimo de sobrecarga. Essas características posicionam o Neovim não apenas como um editor de texto, mas como um ambiente de desenvolvimento personalizável que pode ser adaptado a fluxos de trabalho individuais.
Antes de mergulhar em nossos comandos do Neovim, gostaria de apresentar o Apidog – uma plataforma abrangente de desenvolvimento de API que está rapidamente se tornando a alternativa preferida ao Postman para muitos desenvolvedores.

Se você trabalha frequentemente com APIs enquanto codifica no Neovim, o Apidog oferece uma experiência perfeita para design, depuração e documentação de APIs.

O Apidog combina documentação de API, testes automatizados e servidores simulados em uma única ferramenta integrada, tornando-o perfeito tanto para desenvolvedores individuais quanto para equipes. Sua interface intuitiva e recursos poderosos simplificam seu fluxo de trabalho de API, mantendo compatibilidade com suas coleções existentes do Postman. Reserve um momento para testar o Apidog junto com sua configuração do Neovim – a combinação dessas ferramentas poderosas pode revolucionar seu processo de desenvolvimento.
Agora, vamos mergulhar nesses comandos essenciais do Neovim!
Por que você deve usar o Neovim
Desempenho e Eficiência
A arquitetura do Neovim é projetada para velocidade. Ao aproveitar a I/O assíncrona, ele permanece responsivo mesmo ao executar tarefas intensivas, como indexação de código ou operações git. Isso significa que não haverá mais travamentos ou atrasos enquanto trabalha em arquivos grandes ou projetos complexos. A abordagem de edição modal também minimiza o movimento das mãos, reduzindo o risco de lesões por esforço repetitivo comuns entre desenvolvedores que passam horas codificando.
Personalização e Extensibilidade
Embora muitos editores modernos ofereçam opções de personalização, a abordagem do Neovim é singularmente poderosa. Cada aspecto do editor pode ser configurado de acordo com suas preferências, desde mapeamentos de teclas até a aparência. O ecossistema robusto de plugins permite que você estenda a funcionalidade em praticamente qualquer direção - transforme o Neovim em um IDE para sua linguagem preferida, um ambiente de escrita para documentação, ou qualquer coisa intermediária.
Habilidades à Prova do Futuro
Aprender Neovim desenvolve habilidades de edição que transcendem ferramentas ou ambientes específicos. A edição no estilo Vim está disponível como um plugin ou modo em quase todos os editores e IDEs populares, incluindo VS Code, IntelliJ IDEA e até mesmo navegadores. Dominar esses comandos cria habilidades transferíveis que melhoram sua produtividade em várias plataformas.
Eficiência de Recursos
A pegada de recursos mínimos do Neovim o torna uma excelente escolha para trabalho remoto ou dispositivos de menor potência. Ele inicia instantaneamente e consome significativamente menos memória do que editores gráficos, deixando mais recursos disponíveis para suas tarefas de desenvolvimento reais.
Comunidade e Ecossistema
O Neovim promove uma comunidade ativa que contribui continuamente para sua melhoria. O ecossistema de plugins é rico e diversificado, com ferramentas disponíveis para praticamente todas as necessidades de desenvolvimento. Desde busca difusa e navegação por arquivos até integração git e destaque de sintaxe, a comunidade criou soluções que rivalizam ou superam aquelas encontradas em IDEs comerciais.
Ética de Código Aberto
Ao escolher o Neovim, você está abraçando uma ferramenta totalmente de código aberto com um processo de desenvolvimento transparente. Seu editor não está sujeito aos caprichos de uma corporação ou a mudanças repentinas em modelos de licenciamento ou preços.
Como instalar o Neovim no Windows, Mac, Linux
Instalação no Windows
Usando o Gerenciador de Pacotes do Windows (winget)
winget install Neovim.Neovim
Usando Chocolatey
choco install neovim
Usando Scoop
scoop install neovim
Instalação Manual
- Visite a página de lançamentos do Neovim no GitHub
- Baixe o arquivo ZIP estável mais recente para Windows
- Extraia o conteúdo para um local de sua escolha (por exemplo,
C:\Program Files\Neovim
) - Adicione o diretório
bin
à sua variável de ambiente PATH - Verifique a instalação abrindo um prompt de comando e digitando
nvim --version
Instalação no macOS
Usando o Homebrew
brew install neovim
Usando o MacPorts
sudo port install neovim
Instalação Manual
- Baixe o arquivo mais recente para macOS na página de lançamentos do Neovim no GitHub
- Extraia o aplicativo para sua pasta Applications
- Opcionalmente, adicione um alias ao seu arquivo de configuração de shell:
alias nvim='/Applications/Neovim.app/Contents/MacOS/nvim'
Instalação no Linux
Ubuntu/Debian
sudo apt update
sudo apt install neovim
Fedora
sudo dnf install -y neovim python3-neovim
Arch Linux
sudo pacman -S neovim
Compilando a partir do Fonte
Para os recursos mais recentes ou em distribuições sem pacotes atualizados:
git clone https://github.com/neovim/neovim
cd neovim
make CMAKE_BUILD_TYPE=RelWithDebInfo
sudo make install
Verificando sua Instalação
Após a instalação, abra um terminal ou prompt de comando e digite:
nvim --version
Você deve ver a saída exibindo a versão do Neovim e as informações de compilação. Para iniciar o Neovim, basta digitar:
nvim
Configuração Inicial
O Neovim armazena sua configuração nos seguintes locais:
- Windows:
%LOCALAPPDATA%\nvim\
- macOS/Linux:
~/.config/nvim/
Crie um arquivo init.vim
neste diretório para configuração em Vimscript ou um init.lua
para configuração em Lua. Muitos usuários começam com uma configuração mínima e a constroem à medida que aprendem:
Exemplo básico de init.vim:
" Configurações básicas
set number " Mostrar números das linhas
set relativenumber " Mostrar números de linha relativos
set expandtab " Usar espaços em vez de tabs
set tabstop=4 " Definir largura do tabulação para 4 espaços
set shiftwidth=4 " Definir largura de deslocamento para 4 espaços
set autoindent " Habilitar auto-indentação
set smartindent " Habilitar indentação inteligente
set termguicolors " Habilitar suporte a cores verdadeiras
Top 100 Comandos Neovim para Iniciantes
O Neovim se estabeleceu como um editor de texto poderoso e extensível para desenvolvedores e usuários avançados. Construindo sobre a fundação do Vim, o Neovim oferece desempenho melhorado, uma arquitetura de plugin superior e uma comunidade vibrante que constantemente aprimora suas capacidades. Seja você um veterano experiente do Vim ou um novato na edição modal, ter um referencial de comandos abrangente à sua disposição pode melhorar dramaticamente sua eficiência e fluxo de trabalho.
Este guia compila 100 comandos essenciais do Neovim que todo usuário deve conhecer, organizados por categoria para referência rápida. Desde navegação básica até manipulação avançada de texto, esses comandos representam o conjunto de ferramentas que torna o Neovim um ambiente de edição tão formidable. Dominar até mesmo um subconjunto desses comandos aumentará significativamente sua produtividade e ajudará você a aproveitar todo o potencial do Neovim.
Navegação Básica
h
,j
,k
,l
- Mover o cursor para a esquerda, para baixo, para cima, para a direita (as teclas de movimento principais no Neovim)w
- Ir para o início da próxima palavra (pontuação considerada como palavras)W
- Ir para o início da próxima WORD (palavras separadas por espaço)b
- Ir para o início da palavra anteriorB
- Ir para o início da WORD anteriore
- Ir para o final da palavraE
- Ir para o final da WORD0
- Ir para o início da linha (primeira coluna)^
- Ir para o primeiro caractere não em branco da linha$
- Ir para o final da linhagg
- Ir para a primeira linha do documentoG
- Ir para a última linha do documento{number}G
- Ir para o número da linha específico{
- Ir para o parágrafo/bloco de código anterior}
- Ir para o próximo parágrafo/bloco de códigoCtrl-u
- Mover para cima meio telaCtrl-d
- Mover para baixo meio telaCtrl-b
- Mover para cima uma tela completaCtrl-f
- Mover para baixo uma tela completazz
- Centralizar o cursor na tela (a linha atual se torna a linha do meio)zt
- Posicionar o cursor no topo da telazb
- Posicionar o cursor na parte inferior da tela
Comandos de Edição
i
- Entrar no modo de inserção antes do cursor (para inserir texto)I
- Entrar no modo de inserção no início da linhaa
- Entrar no modo de inserção após o cursor (anexar)A
- Entrar no modo de inserção no final da linhao
- Inserir nova linha abaixo da linha atual e entrar no modo de inserçãoO
- Inserir nova linha acima da linha atual e entrar no modo de inserçãor
- Substituir um único caractere sob o cursor (sem entrar no modo de inserção)R
- Entrar no modo de substituição (sobrescrever texto existente)x
- Excluir o caractere sob o cursorX
- Excluir o caractere antes do cursordd
- Excluir toda a linha (e armazenar no registro){number}dd
- Excluir múltiplas linhasD
- Excluir do cursor até o final da linhayy
ouY
- Yank (copiar) toda a linha{number}yy
- Yank múltiplas linhasy$
- Yank do cursor até o final da linhap
- Colar após o cursorP
- Colar antes do cursoru
- Desfazer a última alteraçãoCtrl-r
- Refazer (desfazer o desfazer)~
- Alternar o caso do caractere sob o cursor>>
- Indentar a linha<<
- Desindentar a linha.
- Repetir o último comando (poderoso para edições repetitivas)cc
ouC
- Alterar toda a linha (excluir a linha e entrar no modo de inserção)cw
- Alterar a palavra (excluir a palavra e entrar no modo de inserção)c$
ouC
- Alterar até o final da linhaJ
- Juntar a linha atual com a próxima linha
Buscar e Substituir
/padrão
- Buscar para frente pelo padrão?padrão
- Buscar para trás pelo padrãon
- Repetir a busca na mesma direçãoN
- Repetir a busca na direção oposta*
- Buscar para frente pela palavra sob o cursor#
- Buscar para trás pela palavra sob o cursor:%s/velho/novo/g
- Substituir todas as ocorrências de 'velho' por 'novo' em todo o arquivo:%s/velho/novo/gc
- Substituir todas as ocorrências com confirmações:s/velho/novo/g
- Substituir todas as ocorrências na linha atual:noh
- Limpar o destaque da buscagd
- Ir para a definição local da palavra sob o cursorgD
- Ir para a definição global da palavra sob o cursor
Modo Visual
v
- Entrar no modo visual caracter a caracter (selecionar caracteres)V
- Entrar no modo visual linha a linha (selecionar linhas inteiras)Ctrl-v
- Entrar no modo visual de bloco (selecionar blocos retangulares)gv
- Re-selecionar a seleção visual anterioro
- No modo visual: Mover para a outra extremidade da seleçãoO
- No modo visual de bloco: Mover para o outro canto do blocoaw
- Selecionar uma palavra (no modo visual)ab
- Selecionar um bloco com () (no modo visual)aB
- Selecionar um bloco com {} (no modo visual)at
- Selecionar um bloco com tags HTML/XML (no modo visual)
Operações com Arquivos
:e nome_do_arquivo
- Editar um arquivo (criar se não existir):w
- Escrever (salvar) o arquivo:w nome_do_arquivo
- Escrever no nome do arquivo especificado (salvar como):q
- Sair (falha se houver alterações não salvas):q!
- Sair sem salvar (descartar alterações):wq
ou:x
- Escrever e sair:saveas nome_do_arquivo
- Salvar arquivo como nome_do_arquivo:r nome_do_arquivo
- Inserir o conteúdo do arquivo abaixo do cursor:r !comando
- Inserir a saída do comando de shell abaixo do cursor
Trabalhando com Janelas e Abas
:split
ou:sp
- Dividir a janela horizontalmente:vsplit
ou:vs
- Dividir a janela verticalmenteCtrl-w h/j/k/l
- Navegar entre janelas (esquerda/baixo/cima/direita)Ctrl-w +/-
- Aumentar/diminuir a altura da janelaCtrl-w </>
- Aumentar/diminuir a largura da janelaCtrl-w =
- Tornar todas as janelas de tamanho igualCtrl-w o
- Tornar a janela atual a única:tabnew
- Criar nova abagt
- Ir para a próxima abagT
- Ir para a aba anterior:tabclose
- Fechar a aba atual:tabonly
- Fechar todas as outras abas
Gerenciamento de Buffers
:ls
- Listar todos os buffers:b número
- Alternar para o buffer pelo número:bn
- Próximo buffer:bp
- Buffer anterior:bd
- Excluir buffer (fechar arquivo):bufdo comando
- Executar comando em todos os buffers:e #
- Editar o arquivo alternativo (geralmente o arquivo editado anteriormente)
Marcas e Saltos
m{a-z}
- Definir marca na posição atual (minúsculas para local do arquivo)m{A-Z}
- Definir marca na posição atual (maiúsculas para global)'{marca}
- Ir para a linha da marca`{marca}
- Ir para a posição da marcaCtrl-o
- Ir para a posição mais antiga na lista de saltosCtrl-i
- Ir para a posição mais recente na lista de saltos'.
- Ir para a posição da última alteração`.
- Ir para a posição exata da última alteração
Objetos de Texto e Movimentos
ci(
- Alterar dentro de parêntesesdi"
- Excluir dentro de aspas duplasyi]
- Yank dentro de colchetesva{
- Selecionar visualmente em torno de chaves (incluindo as chaves)dap
- Excluir em torno do parágrafocit
- Alterar dentro da tag HTML/XMLdiw
- Excluir dentro da palavradaw
- Excluir em torno da palavra (incluindo espaços)dab
- Excluir em torno do bloco (parênteses)daB
- Excluir em torno do bloco (chaves)
Comandos de Dobra
zf
- Criar dobra (no modo visual)zo
- Abrir a dobra sob o cursorzc
- Fechar a dobra sob o cursorza
- Alternar a dobra sob o cursorzR
- Abrir todas as dobraszM
- Fechar todas as dobraszj
- Mover para a próxima dobrazk
- Mover para a dobra anterior
Recursos Específicos do Neovim
:terminal
ou:term
- Abrir terminal integradoCtrl-\ Ctrl-n
- Sair do modo terminal para o modo normal:checkhealth
- Executar a ferramenta de diagnóstico do Neovim:lua require('telescope.builtin').find_files()
- Usar o plugin Telescope para encontrar arquivos:TSInstall linguagem
- Instalar o parser treesitter para uma linguagem:LspInfo
- Mostrar o status do Protocolo de Servidor de Linguagens:TSBufToggle highlight
- Alternar o destaque do treesitter:highlight
- Mostrar os grupos de destaque atuais:Tutor
- Iniciar o tutorial embutido do Neovim:help nvim-features
- Ver os recursos específicos do Neovim
Recursos Avançados
q{a-z}
- Gravar macro no registro@{a-z}
- Executar macro do registro@@
- Repetir a última macro executadag&
- Repetir a última substituição em todas as linhas:norm cmd
- Executar comando do modo normal nas linhas selecionadasgf
- Ir para o arquivo sob o cursorCtrl-a
- Incrementar número sob o cursorCtrl-x
- Decrementar número sob o cursor:sort
- Classificar linhas selecionadas!motion comando
- Filtrar texto através de comando externo
Conclusão
O poder do Neovim reside em seu extenso conjunto de comandos, e dominar esses comandos irá aumentar significativamente sua eficiência de edição. Lembre-se que a proficiência vem com a prática – comece incorporando alguns novos comandos em seu fluxo de trabalho a cada dia, e em breve eles se tornarão uma segunda natureza.
A filosofia de edição modal do Neovim permite uma manipulação de texto incrivelmente precisa e eficiente uma vez que você constrói memória muscular para esses comandos. Considere criar seus próprios mapeamentos de teclas personalizados para operações frequentes para aumentar ainda mais sua produtividade.
À medida que sua proficiência cresce, você pode querer explorar o ecossistema de plugins para estender a funcionalidade do Neovim. Plugins populares como Telescope para busca difusa, configurações LSP para inteligência de código, e Treesitter para destaque de sintaxe melhorado podem transformar o Neovim em um poderoso ambiente de desenvolvimento integrado adaptado às suas necessidades específicas.
Para aqueles que trabalham com APIs enquanto usam o Neovim, não esqueça de tentar o Apidog como uma alternativa abrangente ao Postman. Sua interface simplificada e recursos poderosos complementam a abordagem focada na eficiência do Neovim para criar um ambiente de desenvolvimento otimizado.
Seja você escrevendo código, documentando projetos ou editando arquivos de configuração, esses comandos do Neovim fornecem a base para uma experiência de edição de texto que cresce com suas necessidades e se adapta ao seu fluxo de trabalho pessoal. Com o tempo e a prática, você descobrirá que a curva de aprendizado inicial do Neovim traz dividendos extraordinários em produtividade a longo prazo e prazer na edição.
Feliz edição!