VS Code. The gateway drug of modern programming. It’s got extensions for everything, an interface so friendly it practically hands you a coffee while you code, and a thriving ecosystem that screams “I’m productive.” But let’s be honest—productivity is overrated when compared to elitism.
Enter Neovim, the text editor that doesn’t just let you write code; it lets you prove to everyone around you that you’re better at it. Sure, it doesn’t have a drag-and-drop marketplace or a built-in terminal that just works out of the box. But who needs simplicity when you can spend hours configuring your editor, only to smugly declare that every keystroke saves you 0.03 seconds?
Switching to Neovim wasn’t just a choice—it was a calling. A chance to transcend the amateur realm of “point-and-click” coding and ascend to the keyboard-centric nirvana of vim motions, custom keybindings, and occasionally breaking my entire setup because I forgot how Lua works. This is the story of how I abandoned VS Code and joined the small, smugly satisfied club of Neovim users.
The Real Reason
Let me be honest—my switch to Neovim wasn’t some noble quest for enlightenment or a burning desire to master the arcane art of modal editing. It was because my computer is, well, old. Like, “I should probably stop pushing Chrome updates” old.
VS Code, for all its shiny productivity and one-click extensions, is a bit of a RAM hog. Sure, it’s built on Electron, which is essentially Chrome in a trench coat, but when you add ten extensions and leave it running for a few hours, it starts acting like your friend who “just needs to borrow your couch for a week” and ends up eating all your snacks and taking over your living room.
I’d fire up VS Code to edit a single file, and five minutes later, my whole system would slow to a crawl, as if my computer were saying, “You’re asking me to do what now?” I tried closing tabs. I tried disabling extensions. I even tried turning it off and on again. But the writing was on the wall: my trusty machine simply couldn’t handle VS Code’s... ambitions.
That’s when I started toying with the idea of Neovim. “It’s lightweight,” they said. “It’ll run on a toaster,” they said. And suddenly, the thought of ditching all the bloat and running an editor that could just edit files without spawning a small village of background processes sounded appealing.
Of course, I told myself it was about becoming a better developer, and part of me knew it was true. Using the mouse felt inefficient, like a relic from a bygone era of point-and-click mediocrity. I craved efficiency—the kind that lets you blaze through code with just a keyboard and a dream. And if that dream also happened to lighten the load on my aging laptop, well, that was just a bonus.
The Inspiration
I wasn’t a stranger to vim. Unlike the average Joe who doesn’t know how to quit out of it, I’d been using vim for years to make small, one-off edits from the terminal or to quickly inspect a file. It was my trusty sidekick for those quick tasks. But it was never more than that, mainly because I thought vim lacked the one thing I couldn’t compromise on: aesthetics. Let’s face it—I’m a sucker for a beautiful UI, and I believed vim didn’t have the customization chops to satisfy my cravings. Plus, I didn’t realize that vim could support modern features like language servers (more on that later).
That all changed when I stumbled across a video by ThePrimeagen showcasing his Neovim setup. Watching him fly through code with efficiency and style was my aha moment. Here was everything I thought vim couldn’t be: customizable, visually appealing, and still ridiculously lightweight. Suddenly, the idea of a sleek, keyboard-first workflow without the overhead of VS Code became irresistible. Seeing the themes, plugins, and sheer power of Neovim’s customization options hooked me instantly.
Couple that with its low system resource usage, and I was sold. It wasn’t just a text editor anymore—it was a statement. A statement that coding could be both efficient and beautiful, without forcing my laptop to cough and wheeze in protest.
My Setup
I won’t go into every detail of my setup—mainly because that would take ages—but I’ll share some of my notable keybindings and plugins that make Neovim my editor of choice.
First, let’s talk aesthetics. I wanted a visually appealing home screen, so I used the alpha.nvim plugin to create a sleek and minimal dashboard.
For my editing theme, I chose the oxocarbon theme, inspired by IBM’s Carbon colour scheme, which gives my workspace a polished and professional vibe.
Next, I needed a way to move between files quickly and efficiently. Like most Neovim users, I installed telescope.nvim and mapped it to Space + / for instant file searching from anywhere.
Despite the “real vim users don’t need a file tree” rhetoric, I also installed a file tree plugin (neotree) to mimic the VS Code UI. While I rarely use it, it comes in handy when I want to see my file organization at a glance.
For in-editor syntax checking, I set up nvim-lspconfig along with mason to handle installing language servers for my most-used languages. A language server, for the uninitiated, is like a personal assistant for your code—it provides features like autocomplete, go-to definition, and real-time error checking, all tailored to the specific language you’re working with.
Keybindings are another cornerstone of my setup. I’ve mapped shortcuts for tasks like git add, commit, and push, as well as for file searching with grep, opening and navigating windows, and more. While I won’t cover every single one (we’d be here all day), trust me when I say they’ve made my workflow faster and more intuitive.
Finally, I implemented a few custom commands, the most notable being :SetRun (alias :SR) and :Run (alias :R). With :SetRun, I can save a terminal command for the session, and with :Run, I can either execute the saved command or provide a new one as an argument. This has been a game-changer for repetitive tasks within projects, letting me run commands directly from Neovim without switching contexts.
Conclusion
Switching to Neovim has made both me and my computer much more efficient at development. My workflows feel smoother, and my laptop no longer sounds like it’s preparing for liftoff. That said, I still have a long way to go. I’m an amateur when it comes to vim motions and navigation, but I’m improving every day. (Don’t tell anyone, but I still sometimes use the arrow keys or the mouse instead of hjkl.)
All in all, I would absolutely recommend switching to Neovim (or vim) for anyone who values efficiency, customization, or if your computer is on it’s last legs like mine is. It’s been a challenging yet rewarding change—one that has reinvigorated how I approach coding.