I have been using Neovim on and off for more than 5 to 6 years. Everything started as I was in my college and I started using an Linux based OS on my personal laptop. At the moment, I don't even know how I moved to Linux anymore, it almost feels like I just never used Windows at all to begin with (but it will be a lie to say that, I have been a using it from the Windows XP, until I found linux and never went back (which is again lie, during Covid for few brief months I switched to Windows to play games from my Steam account)). A bigger contribution for my love to Linux should be by following Derek Taylor, his videos on Arch linux, window managers, Neovim and Emacs has influenced my time using Linux. That's how I started using to Neovim a...
I have been using Neovim on and off for more than 5 to 6 years. Everything started as I was in my college and I started using an Linux based OS on my personal laptop. At the moment, I don't even know how I moved to Linux anymore, it almost feels like I just never used Windows at all to begin with (but it will be a lie to say that, I have been a using it from the Windows XP, until I found linux and never went back (which is again lie, during Covid for few brief months I switched to Windows to play games from my Steam account)). A bigger contribution for my love to Linux should be by following Derek Taylor, his videos on Arch linux, window managers, Neovim and Emacs has influenced my time using Linux. That's how I started using to Neovim and Emacs at the same time.
A lot of my initial time with Arch linux was using Neovim as it was how I started editing all the files and configured Window managers from the TTY. Using vim script to configure Neovim was so fun, and I learnt about vim binding that enabled my fingers to do magic. All the time during my college and during Covid helped me learn a lot about Linux in general (I guess I shouldn't focus on Linux in this post, it is already deviating from original topic I wanted to cover). Anyways, I loved vim first, then found Emacs and fell head over heels on lisp and Doom Emacs.
Configuring both Neovim & Emacs during those times were mostly copy pasting other peoples' configurations or following through the youtube videos by people like System Crafters, and many others. I didn't put much thought on how these configuration files worked, what I have been copy pasting in terms of the code logic. If I faced problems, I would just stalk solutions at Reddit or Stackoverflow. It worked out fine then, until I got landed a job. My job gave me a new MacBook, got me hooked into the Apple ecosystem, I was asked to learn Swift and do Apple App development; that was how I stopped using Linux at the end. Lucky, Xcode has support for Vim keybinding out of the box, and I got pretty used to it from the early stage (later I came to know that the people behind Xcode's development were originally Neovim & Emacs users, they wanted to provide support for vim bindings because of it or something; I had an opportunity to talk with one the head developers of Xcode in one-on-one sessions from Apple, cool guys).
Before few years, I wanted to try Emacs or Neovim for the development in my current system, as I got tired of using Xcode. I tried to use Emacs on Mac, only to not enjoy it as I used to. I couldn't find the same interest I used to have back in the days, eventually I gave up on Emacs. Turning to Neovim, I tried to follow my old foot steps and copy pasted a lot of configurations, which were in lua. I didn't know how lua has changed the plugin systems and neovim configuration, so I faced so much difficulties on setting up these configurations and get to a pretty working configuration. Eventually I got into the cycle of configuring Neovim or Emacs and drop them in between due to lose of interest and not enough time. After few attempts I completely gave up on Emacs, and started using LazyVim (it is a preconfigured Neovim configurations or basically a Distro for Neovim.
There were challenges in setting up Swift for Neovim as there wasn't any better support for LSP, formatters and much more from the Swift side, and it also became tiring to read through the configurations without actually knowing what is happening is the code snippets. There were many attempts by me to write configuration from scratch and everything ended up in vain.
Few weeks back, while trying to participate in AdentOfCode 2025, I picked up Lua to solve the problems. I learned about Lua, I went through the basis, I tried to solve three days problems, and gave up on it (I know, I m pathetic, don't judge me). But guess what, last week I sat to write Neovim configuration from scratch again. This time around, I didn't copy paste other people's code, rather, I went through the Neovim manuals, help guides, kickstarter project, even referenced code snippets from the in built help guides. Everything about Neovim started to make perfect sense to me. It wasn't hard anymore, I know the data structures behind lua, and how I was making functions, and calling them as necessary. Many aspects of the configuration became my own code ( I mean code I wrote). I had more patience this time around.
Learning through Lua gave me peace of mind from my daily job. I was focusing on something entirely different for a week, I wanted to save myself from burnout, and it change helped me out. Still I haven't completely in terms with the advanced concepts like Meta table (not even sure if it is an advanced topic, but it was overwhelming to learn it), but everything that was needed for writing Neovim config was already covered. I was patient while going through the language, I didn't want to speed up and get burnt out, so rather I took my pace and went with the days. After few days, I was good enough to write lua without documentation.
At this point, I wanted to write Neovim configuration again from scratch, and knowing the language properly actually helped me in many ways. After taking my time to add essential plugins, LSP support and going through the update that Neovim got, things started to feel natural. This process helped me to grow my confidence back while I picked myself up from burn out. The recent feeling on unable to put effort on anything outside my career started to lose its strength and that also boosted my morale all together.
It also made me buy some books, and write this blog, even made me think what has changed this time. While I was in hurry behind my career, and daily work, I almost left behind the need for my own recreation and hunger towards coding and technology in general. I lost my patience to learn and invest in myself. Even though it was for a few months, I lost the cool I used to have.
Learning necessary doesn't have to come natural for everyone, even to those who seems to spend a lot of time discovering new things through blogs, books or from any means (like me). At times, even the best people will face hardship to continue doing what they love. It is only natural for us to lose interest and focus in a world that brings innovation constantly to people with a single goal to capture our attention and focus. To unwind from these distractions and to sharpen our own knowledge and interest needed so much patience. Yes, patience. Being patient, and going through something completely irrelevant just for the sake of learning brought back my interest just like those old days. As we grow older, and stack responsibilities on the way, I think there should be days that we need to take for ourselves, learn new things or follow our hobbies or any activity on that matter, that will get us back on our feet.
Patience is one of the many skills that I can be proud of. It has helped me throughout my life time, from worst situations through everyday life. Learning is always a long process no matter how simple or complex the subject is. Being patient, can help in recursively going through the same concepts multiple times, until its complexity becomes familiar. I think, if there is infinite time to learn, everything under the sun is understandable eventually ( might be an over statement).
Thank you for reading so far.