A respectful and honest analysis

Neovim
vs VSCode &, IntelliJ

Porque após anos usando IntelliJ e VSCode eu decidi usar Nvim.

Published on

▶ See arguments Side by side comparison
~18ms
startup time
<30MB
memory usage
Lua
native config language
editors in an SSH terminal
1991
Vim exists since

JetBrains e VSCode são excelentes, mas Nvim revela um jeito diferente de trabalhar.

Nvim setup
Velocidade absurda
O IntelliJ (e outras IDEs da JetBrains) tem a melhor navegação de código de todas as IDEs, a indexação funciona super bem, e uma vez com os arquivos indexados a navegação é instantânea. A velocidade do Nvim na inicialização é quase instantânea, mas um projeto você abre poucas vezes. O benefício fica mais em ver que tudo no Nvim funciona tão liso quanto possível.
performance
⌨️
Mão no teclado o tempo todo
Com os modos Insert e Visual eu não preciso tirar a mão do teclado, e mesmo hoje que eu cada vez menos ponho a mão no código, faz diferença porque a navegação é muito mais rápida e fluida. A questão é muito mais ergonomia e navegação sem pensar muito do que velocidade bruta.
ergonomia
🏋️
Leveza extrema
~14 MB RAM vs 350 MB (VSCode) vs 900 MB (IntelliJ). Preciso trabalhar com projetos grandes e prefiro manter todos os projetos abertos ao mesmo tempo, isso é escalável apenas com Nvim e seu consumo baixíssimo de memória, além de aumentar a vida útil da bateria dos meus notebooks.
recursos
🔧
Configuração em Lua real
O seu init.lua é código real, não JSON ou XML. Você pode escrever loops, condicionais, abstrações, ler variáveis de ambiente e construir comportamentos que simplesmente não existem em outros editores. É um editor que você programa.
customização
🖥️
Uma IDE para todas as linguagens
Gosto de centralizar o desenvolvimento de todas as minhas apps em um lugar. Nisso o VSCode e o Nvim são excelentes, ao invés de abrir múltiplos programas diferentes para cada projeto, eu só abro o Nvim em múltiplas abas no meu terminal. É uma ferramenta para lidar com código, não uma ferramenta para programar em Java, Rust ou Go.
produtividade
🔍
Eu sei o que roda embaixo do capô
Já conheceu alguém que, sem a sua IDE em mãos, não consegue compilar e rodar na linguagem que tem experiência há mais de 10 anos? Tenho pavor disso, estou sempre trocando de IDE para não ficar dependente de um único ambiente. Com Nvim essas deficiências ficam muito evidentes e você é obrigado a realmente conhecer a sua linguagem de programação preferida.
fundamentos
⚙️
Configuração infinita
O seu Nvim nunca será igual ao de outra pessoa, você não tem que se moldar à sua IDE, a sua IDE se molda a você. Por exemplo: configurei buscas personalizadas no Telescope, busca de palavras só em arquivos de código (funciona para todas as linguagens), busca por diretórios, busca excluindo testes, outline de métodos ao abrir um arquivo, um comando para formatar JSONs dos logs das minhas apps, e muito mais.
customização
🎹
Macros de teclado de verdade
Grave uma macro com qa, execute @a 100 vezes com 100@a. Transforme estruturas de dados inteiras sem uma linha de script. VSCode tem snippets. Nvim tem poder computacional no seu teclado.
automação
🔒
Zero telemetria
Nvim não coleta nenhum dado. VSCode (Microsoft) e IntelliJ (JetBrains) coletam telemetria de uso por padrão. Para quem trabalha com código proprietário ou simplesmente valoriza privacidade, isso não é um detalhe, é uma decisão de arquitetura.
privacidade
♾️
Habilidade que dura décadas
Vi existe desde 1976. Vim desde 1991. Nvim desde 2014. O investimento em aprender modal editing nunca vai embora. IDEs vêm e vão, a memória muscular do Vim é vitalícia. Muitos devs sênior ainda o usam após 20 anos porque nada substituiu a eficiência.
longevidade
💸
100% gratuito e open source
IntelliJ cobra ~$250/ano. Alguns recursos do VSCode estão atrelados à Microsoft. Nvim é FOSS, sem licença, sem plano premium, sem features escondidas atrás de paywall. A comunidade contribui abertamente no GitHub.
custo

Side by Side

An honest comparison. Neovim has strengths and weaknesses, but the strengths weigh much more for those who spend 8h+ per day in the editor.

Criterion Neovim VSCode IntelliJ
Startup time ✦ ~18ms~400ms15–60s
Idle RAM usage ✦ ~14 MB~350 MB~900 MB
Configurability ✦ Pure Lua, unlimited JSON + extensions XML + plugins
Works via SSH/terminal ✦ Native Plugin (Remote SSH) Not native
LSP support ✦ Native (0.5+) ✦ Native ✦ Native
Advanced refactoring Good via LSP Good ✦ Excellent
Learning curve High (initial) ✦ Low Medium
Text editing efficiency ✦ Modal editing StandardStandard
Free and open source ✦ Yes, FOSS Core yes (MS) Paid ($249/year)
Telemetry / data collection ✦ None Yes (opt-out) Yes (opt-out)
Plugin ecosystem ✦ Huge (lazy.nvim) ✦ Huge Large
Terminal integration ✦ Native (toggleterm) Built-in (ok) Built-in (ok)
Debugger (DAP) nvim-dap (works) ✦ Excellent ✦ Excellent
Cross-platform ✦ Linux/Mac/Win/BSD ✦ Linux/Mac/Win ✦ Linux/Mac/Win
"If you can survive the first week in Neovim, you'll never want another editor. Not because the others are bad, but because you'll discover a different relationship with your keyboard." — anonymous developer on Hacker News, 47 upvotes

Honest Questions

True. For complex refactors like extract method, rename across the entire codebase, and dependency analysis, IntelliJ is still superior, especially for Java/Kotlin. Neovim via LSP offers functional global rename, but without the semantic depth the JVM allows. This is where IntelliJ genuinely stands out. For those living in Java, it's a real trade-off to consider.
The VSCode ecosystem is huge and some extensions (like GitLens, GitHub Copilot Chat, certain cloud integrations) are very polished. Neovim has equivalents for most of them, lazygit, copilot.nvim, CodeCompanion, but the experience may require more configuration. The real difference is that in Neovim you control everything, in VSCode you depend on the extension working.
The first two weeks are hard. But the curve is inverted: the difficulty is at the beginning, then it gets exponentially easier. VSCode has a low but flat curve — you grow little after mastering the basics. Neovim has a high but steep upward curve. After a month, you're editing code faster than in any other editor. Use vimtutor in the terminal to start, it takes 30 minutes and teaches 80% of what you need.
You don't need to configure from scratch. Start with NvChad, LazyVim, or AstroNvim — complete distributions that work out-of-the-box with LSP, Treesitter, Telescope, and a beautiful theme. Then, as you understand what each thing does, customize. Most senior Neovim devs started this way.
Yes. With typescript-language-server, eslint-lsp, prettier via conform.nvim, and Treesitter for JSX/TSX, the experience is excellent. The only area where VSCode still wins is visual debugging of React apps with integrated React DevTools. For everything else, editing, autocomplete, automatic imports, formatting — Neovim is at the same level or above.