DEV Community

Cover image for Why I Switched from VSCode to NeoVim (and Why You Might Too)
Sandip Gyawali
Sandip Gyawali

Posted on

Why I Switched from VSCode to NeoVim (and Why You Might Too)

I used VSCode from the beginning of my career — for about 4 to 5 years. It had everything I needed: themes, a polished GUI, and a vast extension ecosystem. But over time, it started to feel... slow and clunky. I found myself wanting more control, less bloat, and something more lightweight — maybe even a bit more experimental than VSCode. That’s when NeoVim entered the picture. At the same time, I had also been using Linux (Fedora with the i3 window manager) for a while, which naturally pushed me toward more minimal, keyboard-driven tools.
Cat Typing

At first, I dismissed it. Terminal based? Vim Keybindings? Manual plugin setup? I was scared. But after watching a few videos and references, I decided to give it a shot. What followed was a week-long rabbit hole of configuration, key mapping, plugin exploration — and eventually, a workflow that made VSCode feel sluggish and noisy in comparison.

What Made Me Switch

Here’s what drew me in:

⚡ Speed: NeoVim launches almost instantly. No Electron overhead, no lags.
⌨️ Modal editing: At first weird, but now addictive. I rarely touch my mouse anymore.
🔌 Full control: With Lua-based configs and plugin managers like Lazy.nvim, I could tailor everything to my liking.
🎯 Focus: Working in the terminal eliminated distractions. It’s just me and the code.

It felt like i was superior and god with some divine power.
God

My tmux and Neovim Setup:

Plugin Manager: Lazy.nvim — fast and declarative.
Theme & UI: Catppuccin
lualine.nvim for a clean, themed statusline.
bufferline.nvim to navigate between open files easily.
neo-tree.nvim as my file explorer with icons, git status, and fuzzy finding.
Telescope for everything else — searching files, buffers, and more.
mason.nvim to manage language servers and formatters.
nvim-lspconfig for TypeScript, Lua, and more.
none-ls (formerly null-ls) to run formatters like prettier and linters like eslint_d.

Some of the Performance Changes that i Noticed over VsCode.

Feature VSCode NeoVim
Interface Graphical, mouse-driven Terminal-based, keyboard-first
Performance Can be slow and resource-heavy Lightweight and extremely fast
Customization Limited to GUI settings and JSON configs Fully scriptable and deeply customizable via Lua
Plugin Ecosystem Easy one-click installs via Marketplace More control, but manual setup via GitHub plugins
Editing Workflow Traditional typing with optional Vim extension Native modal editing for speed and precision
Learning Curve Beginner-friendly, works out of the box Steep at first, but highly rewarding

Resources That Helped Me

If you’re curious, here’s what helped me dive in:

Github Library: https://github.com/nvim-lua/kickstart.nvim
LazyVim: https://www.lazyvim.org/
Youtube: https://www.youtube.com/watch?v=m8C0Cq9Uv9o&t=516s

Conclusion

Switching to NeoVim felt like stepping out of my comfort zone — and into complete control. I don’t think everyone needs to make the switch, but if you’re frustrated with the performance or limitations of VSCode, NeoVim is worth exploring. It's lean, powerful, and once you get used to modal editing, it’s genuinely hard to go back.

Have you tried NeoVim or thinking of switching? I’d love to hear your experience in the comments!

If you liked this post, follow me on Dev.to, GitHub, or Linkedin — I’ll be sharing more tips as I go deeper into NeoVim and terminal-based dev workflows.

Top comments (1)

Collapse
 
aquascript-team profile image
AquaScript Team

On discord