Why Vim is Superior to Neovim
Neovim is a mistake. It’s not an improvement—it’s a misguided fork that breaks everything good about Vim while adding features nobody actually needs.
The Async Patch Lie
What Neovim Claims
|
|
What They Actually Are
|
|
The async patch doesn’t matter because Vim plugins were already fast enough.
The LSP API Disaster
Neovim’s “Central” LSP API
|
|
This is not a “central LSP API”—this is a janky mess of boilerplate code.
Vim’s LSP Support
|
|
Vim’s LSP plugins work better than Neovim’s built-in mess.
Lua is Trash
The Lua Nightmare
|
|
Vim9script: The Real Modern Language
|
|
Vim9script is faster, cleaner, and actually designed for Vim.
The Plugin Ecosystem Disaster
Neovim Plugins: Amateur Hour
|
|
Vim Plugins: Professional Quality
|
|
Vim’s plugin ecosystem is written by legends who understand Vim. Neovim’s ecosystem is written by amateurs who think Lua is “modern.”
The Hardware Support Problem
Neovim: Resource Hog
|
|
Vim: Lightweight and Efficient
|
|
Neovim is a resource hog. Vim is lightweight and efficient.
The Performance Reality
Neovim: Slow and Bloated
|
|
Vim: Fast and Responsive
|
|
Vim is 10x faster than Neovim.
The Compatibility Nightmare
Neovim: Breaks Everything
|
|
Neovim: “Modern” Configuration
|
|
Neovim breaks compatibility with Vim for no good reason.
The Code Quality Reality
Neovim Source Code: Messy and Inconsistent
|
|
Problems with Neovim’s source code:
- Inconsistent error handling: Uses
!fileinstead of explicit== NULL - Poor commenting: Vague comments like “Error handling”
- Convoluted structure: Unnecessary variable declaration
- Lack of documentation: No comprehensive documentation
Vim Source Code: Clean and Professional
|
|
Vim’s code quality:
- Explicit error handling: Clear
== NULLcomparison - Clean structure: Direct variable initialization
- Consistent style: Follows established coding standards
- Comprehensive documentation: Well-documented codebase
Neovim’s Plugin Ecosystem: Amateur Hour
|
|
Problems with Neovim’s code:
- No standardized plugin architecture: Every plugin reinvents the wheel
- Complex interactions: Plugins break each other constantly
- Poor documentation: Developers have to dig into source code to understand behavior
- Instability: Plugin ecosystem is constantly breaking
Vim’s Plugin Ecosystem: Professional Quality
|
|
Vim’s code quality:
- Consistent plugin architecture: All plugins follow the same patterns
- Stable interactions: Plugins work together without conflicts
- Excellent documentation: Clear, comprehensive documentation
- Stability: Plugin ecosystem is rock-solid
The Real Problem: Neovim’s Philosophy
Neovim’s Mistakes
- Lua over VimL: Throwing away decades of Vim knowledge
- Async over Simplicity: Adding complexity for features nobody needs
- LSP over Plugins: Reinventing the wheel instead of improving existing solutions
- Modern over Compatible: Breaking compatibility for “modern” features
- Rewriting from scratch: Losing all the refinement and stability of Vim
Vim’s Philosophy
- VimL: Language designed for Vim
- Simplicity: Simple tools that work well together
- Plugins: Extensible through proven plugin system
- Compatibility: Maintains compatibility across versions
- Incremental improvement: Building on decades of refinement
The Bottom Line
Neovim is inferior to Vim because it:
- Async patch doesn’t matter: Vim plugins were already fast enough
- LSP API is a janky mess: Complex boilerplate instead of simple solutions
- Lua is trash: Vim9script is faster and cleaner
- Plugin ecosystem is amateur: Written by people who don’t understand Vim
- Hardware support is poor: Resource hog that doesn’t work on older systems
- Performance is terrible: 10x slower than Vim
- Compatibility is broken: Breaks everything good about Vim
Stop using Neovim. Use Vim.
Your editing will be faster, more reliable, and actually work.