My road from vscode to a custom nvim config

By Vladimir Rubin 5 min read

0. the beginning

My editor journey started in 2020, back when I played Stormworks The game had Lua programming built in, which I thought was super cool—until I opened its ingame IDE. Calling it “basic” is generous. I knew there had to be something better, so I downloaded VSCode with a Stormworks extension. Boom! Productivity bliss.

For a while, life was good. Coding tiny microcontrollers for a game most people had never heard of kept me happy. But then came 2022, and I started coding for real—actual, non-ingame projects. Suddenly, I wanted more. The YouTube coding gods with their magic-like speed, in something called Neovim. It wasn’t just “coding”; it looked like some crazy-under-meth speedrun.

So, naturally, I downloaded it. While watching Fireship’s “Neovim in 100 Seconds” I was convinced that this would level up my life.

1. the disappointment

…Or so I thought. Neovim opened like an 80s RPG, packaged with zero hand-holding. I spent hours googling, trying to set up something basic and finally gave up. “Eh, I’ll figure it out later™”, I thought. Famous last words.

Fast forward to the end of 2022: I got a new PC and, out of curiosity, installed Linux on my now spare laptop. It was love at first boot (as long as we don’t talk about my experience with Ubuntu). Diving into Linux introduced me to this whole world of customization and DIY setups, and I realized… Maybe I wasn’t done with Neovim just yet.

2. NvChad

So I quickly realized that writing my own config from scratch wasn’t that good of an idea. So I looked up pre-baked nvim configs and chose NvChad because it had a cool name(the only real metric for grading software). I quickly ran to install all the dependencies and all that. And it was fun. I struggled a lot with this whole new “modal editor” paradigm,but,for some reason, I loved it. Typing stuff like ca( and just changing something felt like it was illegal. What do you mean I could do ALL this without ever touching my mouse?

But of course all the time I felt like I was doing something wrong. Maybe it’s just that I need another nvim ‘distribution’, or maybe I just need to read vimtutor a few more times… I still felt that this editor was mine.

3. Helix Editor

But I always liked niche things. The more niche, the better. And I was a huge Rust fanboy at that time. So of course my mind exploded when I saw the glorious Helix editor! A post-modern and unconventional and written in rust so of course I quickly typed sudo pacman -S helix into the terminal and started trying it out. And wow, after nvim’s sometimes arbitrary keybinds(why does dd stand for delete line?) helix’s kakoune-like selection-verb model felt way more natural. And I loved the way I didn’t even have to write basically anything in the config besides changing the colorscheme and tweaking a few minor things. It allowed me to be free of “distribution”’s mainterners and their tastes. It was all awesome.

Until I started ditching Obsidian… Yeahhh turn’s out sometimes you have to have at least some plugin support or you’re gonna hit a usecase that the developers didn’t account for and be like “ugh? and what do I do now?”. Well for me that ‘wall’ was writing notes using markdown files. Helix didn’t(and, as far as I know, it still doesn’t) have any proper note-taking mechanism so what do I do?.. Of course I once again look up to my favorite productivity youtuber, jvscholz (and particially DT) and I heard them mention taking notes using some “org-mode” thing. I quickly typed it into the duckduckgo search bar and found out it was some “Emacs” thing. And the only things I heard about Emacs were jokes about it “being an OS” from r/vim comments…

But I still decided to try it… Sooo

4. Emacs

I wasn’t sure what to expect. I had heard about emacs before, but I had never used it. So I went to youtube and found some “Doom emacs”, installed it and it was actually okay. Yeah the startup time sucked, the config language (elisp) was weird af. But still it felt like neovim but lispy.
Org-mode was freaking amazing, todos with schedules, habit tracking and all that in a human-readable plaintext format. The agenda view was so amazing (legit one time I didn’t forget about an exam only because of it).
but still something felt wrong… the occasional lagginess, my inability to meaningfully add something to the config, lack of support for colemak, etc. So I left.

But this time, I didn’t go back to helix. Didn’t go to vscode.

5. The salvation

This time, I built my own

my savior was typecraft with his nvim for newbs series. it helped me to finally understand my own config and that allowed me to grow it to the size it currently is (1840 lines of lua code). Neovim has covered my needs for both coding and note-taking. Now every keybind had meaning and sense to me. Yeah at first it was weird and infuriating at times. But the important part? It’s mine. I know how it works. I know why it breaks and how to fix it.
Neovim now covers everything I need. Real programming, scripting, editing config files, writing blogs(like rn), and even taking notes. I ditched Obsidian, Emacs, and VSCode. My Neovim setup handles it all.
I’ll probably write a full post about my note-taking system but let’s just say that zk + a real notebook = bliss. Sometimes I mess with my config just for fun. A new plugin, a new theme, a stupid keybind (i have one that changes the font. why? idk.). but that’s the best part of it. I don’t need to rely on someone else to “implement a feature” in the “distribution”. I just do my thing.
I guess that’s what I actually wanted all along. Not just an editor.

I wanted freedom.