Here’s a rewritten version of your text with a more natural, personal tone:
When I first got into programming, I went down the rabbit hole of finding the “best” text editor. The internet kept pointing me to two camps: Vim and Emacs. I gave both a shot, but Emacs didn’t click with me. Its keybinds felt awkward, and ironically, I couldn’t figure out how to quit the program (a problem more famously associated with Vim). So, I stuck with Vim and decided to use it for all my schoolwork, no matter how painful it was at first.
The Early Days
Back in 2014, I was in school, mostly coding in Java, so I used BlueJ and then Eclipse for Java projects (with a Vim mode plugin) and plain Vim for everything else. My setup was barebones, just a minimal .vimrc to get by. Maybe a few Tim Pope plugins, but nothing major.
Switching to JavaScript
By 2018, I had shifted to writing mostly JavaScript and TypeScript. That’s when I ditched Eclipse entirely and went all-in on raw Vim. Around this time, I started experimenting more with my Vim configuration, tweaking it to better suit my workflow.
Trying Emacs
At some point in here, I tried emacs via evil mode, doom emacs, spacemacs, and a few other setups. I did like it but at the time I felt there was too much magic going on and I wanted to understand my editor more. I debated learning emacs proper and starting from first principles but my vim muscle memory was too strong by this point.
Discovering Neovim
I also tried neovim several times here, but the project was still kind of in its infancy and I wasn’t convinced it was worth comitting. After all, vim was tried and true for decades. Who knows if this neovim thing will stick around?
Trying Visual Studio Code
In 2020, I decided to give Visual Studio Code a try. I’ll admit, its features like fuzzy file searching and built-in LSP support were impressive. But it felt sluggish compared to Vim, and I really missed the simplicity of split windows. I didn’t want to lose those modern features, though, so I started enhancing Vim with plugins like coc.nvim for LSP and CtrlP for fuzzy finding. It was the best of both worlds. Vim’s speed and efficiency with some of the perks of a modern editor.
Committing to Neovim
I started by simply moving my .vimrc over to Neovim, sticking with what I knew. Eventually, I dipped my toes into Lua and started adding more advanced plugins. My first attempts were a bit chaotic. My setup was unstable, and I spent more time fixing things than coding. That’s when I found TJ’s kickstart.nvim, which gave me a solid foundation to build on. The only downside? Updating it was a bit of a pain. However, once I got my config in lua I was committed. No (easy) way to go back to vim now, so i really leaned into the neovim ecosystem.
Enter LazyVim
In 2022, I discovered the lazy.nvim package manager, which introduced lockfiles for plugin stability. Around the same time, I came across LazyVim, a pre-configured setup built on lazy.nvim. Switching to LazyVim was a game-changer. I had to tweak a few plugins and settings to make it my own, but the result was a rock-solid, self-updating environment.
Current Setup
Now, after a year with LazyVim, I finally have a development setup that feels stable and efficient. My editor updates itself seamlessly, so I can focus on coding instead of constantly tinkering with configurations. It’s been a long journey—from stock Vim to LazyVim—but I’m happy with where I’ve landed. That said, knowing myself, I’ll probably keep tweaking things. Some habits never die.