My Journey into embracing Neovim as my PDE

My Journey into embracing Neovim as my PDE

My Long and Winding Road to Becoming a Vim/Neovim User

The First Encounter

It all started in 2016 in my first company. I wanted to edit a shell script in a Virtual Machine where my application was deployed. The manual instructed me to log into the terminal via PuTTY, run vi <script_name>.sh, and then add a line to it. I followed the same, only to discover that I couldn't do Ctrl+C, Ctrl+V, or Ctrl+S, nor was I able to quit. Frustrated, I quit PuTTY and logged in again. I was like, "Yuck, what the hell is that editor?" and used Nano to edit the file. I thought, "Why don't they have Nano as the default editor in Linux?"

When you try to exit VIM... : r/ProgrammerHumor

The Intriguing Encounter

In 2020, when I started working on NGINX, I was paired with a Senior Engineer. During my onboarding (via Zoom call - during COVID times), he was explaining the codebase to me. To my astonishment, instead of opening an IDE like a JetBrains product or VSCode, he opened his iTerm2, navigated to the project folder, and opened Vim. I was expecting a movement in the mouse pointer, but man, he was flying through the codebase like I've never seen before. At that moment, I thought, "I want that."

Why every software engineer should use vim | Level Up Coding

The Initial Struggles

So, I started looking at tutorial videos and documentation, but it was hard for me totally. I tried to hang on, but over the week, I lost interest (it was hard to begin as a total noob). My workflow continued to be Goland or VSCode over the year. I again gave it a try in 2021 (went into the YouTube rabbit hole one night and ended up in a Vim tutorial). I configured the editor as per the tutorial (used Vim Plug) and found it comfortable to edit files. I spent the next couple of weeks forcing myself to use it as my primary editor. At the end of the sprint, I saw that I didn't finish up my tasks. It dawned on me that maybe I'm not that kind of guy, and it took a total nerd to use Vim as fluently as an IDE, which I'm used to. So, I stopped using it.

The Renewed Attempts

In 2022, I moved to a different company, and there, another Senior Engineer in my team started using Neovim, and I thought I would try it one more time. Let's see; maybe I'm up for it now. The same pattern emerged where I was dead slow. I thought this is it. I'm not gonna try again and stopped using it once and for all (except when doing interactive rebase in Git).

Vscode & Vim : r/ProgrammerHumor

The Pivotal Moment

Everything was going well until I joined a new company again (yes, hectic times, I moved to 3 different companies in 3 years - moved countries and other things out of my hand). But anyway, back to the subject. I wanted to give it one more try again because of a guy called Primeagen. YouTube suggested his video for some reason, the video was cool, and there it was waiting for me. He was using Neovim, and man, I got to see the editor again, which I thought I wouldn't touch or go near. He was basically flying at lightning speed, and it was fun watching him navigate through the codebase. This time, I wanted to use it badly (wanted to have fun while coding). I was impatient in configuring my own settings, so I installed NvChad. It looked so pretty, and I was learning the cheatsheet and was like, "Wow, this is interesting." I was learning all the keycombos and Vim motions; it was fun, and I was happy. But still, I was very slow and used GoLand and VSCode like 80% of my dev work. But still, I was getting used to the hjkl navigation and other keystrokes, but then I slowly moved to using IDEs again and forgot about it.

The Perseverance

I did continuously watch ThePrimeagen and TJDeVries, loved all their uploads. I was using Neovim here and there sometimes but not fully as my primary editor. I tried LunarVim, LazyVim, AstroNvim; all had different keycombos and project structure. I was pretty confused and thought, no way I will be able to create my own config, and even if I did, it would be shitty compared to what others are using and with the other Nvim distros. I tried using kickstart.nvim that TJ DeVries suggested, but for some reason, it didn't stick with me.

The Eureka Moment

Finally, I stumbled upon a video from Josean Martinez. I watched the video entirely, and man, at the end of the video, I got the hang of it. It was my eureka moment where I was like, "Shit, I've been dumb all along." I mean, other videos I watched over the year were good too, but this one hit my brain like nothing else. I was like, "Yeah, let's roll, baby." And there started my Neovim journey.

It's been two weeks since I watched that video, and I joined the crowd, I think, tweaking my Nvim config, adding plugins, removing them, and doing this never-ending tinkering process. Programming is fun again, and I started using Neovim as my primary editor. As TJDeVries says, I finally found my PDE (Personal Development Environment). I now get the hang of it and can't think of not using Vim motions in any editor (PS: I installed the Vimium extension in my browser and love it too).

The Takeaway

Anyway, what I was about to tell is that, to all fellow people who are trying to use Neovim or trying to do programming in a fun way, just hang in there; there is light at the end of the tunnel. I know that I barely scratched the surface and am a beginner in Neovim now, but let's see what the future holds.

Some YouTube channels that I follow for Neovim content:

And finally all thanks to my Senior Engineers, ThePrimeagen, TJDevries and the whole Neovim and Vim community for everything and I guess its time for me to contribute to the ecosystem. I'll share my Neovim configurations and the plugins that I use in future blogs. ๐Ÿ˜

My Nvim Config -

What is this Gooey you speak of? | vim-memes |

Did you find this article valuable?

Support The Bug Shots by becoming a sponsor. Any amount is appreciated!