# My Journey into embracing Neovim as my PDE

## 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](https://i.redd.it/7wb1y164aj711.jpg align="left")

## 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](https://miro.medium.com/v2/resize:fit:640/1*qM-Y5x3pcnzdl0R4uDPKNA.jpeg align="center")

## 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](https://i.redd.it/6bmxucg6c8181.jpg align="left")

## 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](https://www.youtube.com/c/theprimeagen). 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](https://nvchad.com/). 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](https://www.youtube.com/c/theprimeagen) and [TJDeVries](https://www.youtube.com/@teej_dv), loved all their uploads. I was using Neovim here and there sometimes but not fully as my primary editor. I tried [LunarVim](https://www.lunarvim.org/), [LazyVim](https://www.lazyvim.org/), [AstroNvim](https://astronvim.com/); 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](https://github.com/nvim-lua/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](https://www.youtube.com/@joseanmartinez). 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](https://www.youtube.com/@teej_dv) 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](https://chromewebstore.google.com/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en) extension in my browser and love it too).

%[https://youtu.be/6pAG3BHurdM?si=rjDlKCdt9bpLdkH_] 

## 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:

* [ThePrimeagean](https://www.youtube.com/c/theprimeagen)
    
* [TJDeVries](https://www.youtube.com/@teej_dv)
    
* [Josean Martinez](https://www.youtube.com/@joseanmartinez)
    
* [typecraft](https://www.youtube.com/@typecraft_dev)
    
* [Dreams of Code](https://www.youtube.com/@dreamsofcode)
    

And finally all thanks to my Senior Engineers, [ThePrimeagen](https://www.youtube.com/c/theprimeagen), [TJDevries](https://www.youtube.com/@teej_dv) 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 - [https://github.com/cksidharthan/nvim](https://github.com/cksidharthan/nvim)

![What is this Gooey you speak of? | vim-memes | ProgrammerHumor.io](https://programmerhumor.io/wp-content/uploads/2023/08/programmerhumor-io-linux-memes-programming-memes-3566d5d70c7972d.jpg align="center")
