My journey to VIM, from 😕 to 😄

Nov 12, 2023

Vim has been throne till my software development. Something that I always ignored and looked away from. Here I would love to reverse time a by few years and see how my programming journey went and vim has made the journey better making me a more productive software enginner overall. By the way, fireship has the best introduction video about neovim

Learn about neovim in 100 seconds

My journey

I have been loving computer in a general, I have worked on many projects from many domains like learning management system, ecommerce and Saas. I have worked on various solo projects like some fun script in python like the one is linked below.

I don’t have source code to this. Project and I used a google bug to work around the google search rate limiting which was patched after around 2 years (from the video upload time)

As you can see there, I was using python IDLE as a text editor. Aaah ! such a boring guy, you might have thought. I never knew about the existence of Visual Studio Code and my pc couldn’t handle pycharm at that time. After some time, I found about Visual Studio Code from a facebook post or something, I forgot the source. VS Code was pretty much charming me. Being able to see many file sources at the same time blew my mind. I started with vscode and never switched to any other IDE.

This period is what i would say is my dark ages in my programming journey. I went from removing so many application from my computer to support vscode. Until I couldn’t keep up with vscode resources consumption and extensions extending the resources.

Coming Across Vim

I never knew anything about the terminal based editor that I love today. But I only came across vim when I tried to merge the branch through the vscode intergrated terminal. Then I couldn’t figure out how to do :wq so I killed the terminal window 😩

After nth ocuurances with the problem, I figured out that I need to do something with this. I searched the error and straight away I swicthed the git terminal to use nano. I didn’t have any mate or colleagues to guide me with the process of switching to vim.

After Some time

Now I am a working software developer with 2 years of experience and I am using MacOS now. So shoutout to apple. Using a better PC, made me ignore vim for some years. Once, when I was doing ssh into the server, as default server option for text editor is vim in ubuntu. And on every machine, I was getting tired of doing the same thing of replacing the default text editor. So, I decided to use vim. Please note that I only did copy paste form the clipboard and wiritng and saving the file. I still used arrow keys to navigate. 🥺

So many extensions

After some times, I had around 30 extension in my visual studio code and I had to do my development using docker. Extensions like codeium and browsers like brave browsers were smoking my PC. I figured out that this is a real problem for me and i tried to figure out solutions for it. I thought of using new text editor but nothing is as great for web development like visaul studio code. And by this time, I was watching content from a popular youtube channel, The primeagen

ThePrimeTime _This is a place for all the things that are awesome on stream._www.youtube.com

Primeagen is one of the few youtubers who gives you valuable tech advise and content plus his perosnality and presentation is so appealing for folks like me. He also brags about neovim which may or mayn’t have influenced me 😉

So, how did I started vimming ?

NvChad, a popular beginner friendly neovim plugin that made me come into neovim but using NvChad I couldn’t find any fun. So, I told Primeagen “Sensi” and started seeing his starting video, as I was used to with vim movements and was using vim sometimes editing server conf files, creating services and working on ubuntu server.

Primeagen Youtube video

Shortcuts weren’t short to learn

Apart from hjkl and :wq and :%d I knew nothing about neovim or vim mappings. I decided that this is the time to learn neovim and wrote all the shortcurts in a paper and put it aside my working place. Here is a photo of shortcuts and you can use it if you are a vim beginner.

Why better ?

Now, it been a couple of month I have used neovim and I am loving the neovim. I used to do a lot of mistakes when I used to type code. Now using neovim, the mistakes have been cut down by many and now my hands can move pretty easily and fluently and I can also argue that my WPM has increased too. Neovim is basically the fastest editor I haved used and it can be customized to look and feel like vscode too. I would certainly say that my productivity has increased and I love it.

I do rust, python, javascript and laravel in neovim. I am loving neovim and I think I will not moving away from it in the near future. I am using warp terminal and I am loving my workflow with neovim. Now, I can power of using one visual studio code per terminal tabs. 😆 This is how my development looks now.

Here is my neovim config as a github repo. Mostly it is as similar as that of the above primeagen’s video.

GitHub - n1rjal/init.lua: My neovim config contains lsp, keymaps, etc _My neovim config contains lsp, keymaps, etc. Contribute to n1rjal/init.lua development by creating an account on…_github.com

I like to write about technology and programming on LinkedIn. So, let’s get connected there. Here are my socials where you can be a part of my disscussions.

https://www.linkedin.com/in/nirjalpaudel/

Related Posts

productivity

Vim Selection Groups

In Neovim, the scope that regular expression select group is out of this world. Here is a screencast of me making a json object out of just text data.
Vim Selection Groups

You many also like

database

Postgres Just In Time Compiler and Worker Processes

Both Just In Time compiler or JIT and worker processes could be news to you. By the end of this article, you would be able to understand the picture I have provided.
Postgres Just In Time Compiler and Worker Processes
backend

Every Class in NestJS and Its Functionalities

NestJS is a huge framework built on top of TypeScript, JavaScript also uses Express or Fasitfy as an underlying mechanism to route requests.
Every Class in NestJS and Its Functionalities
database

Eat the frog: MongoDB Design Patterns

Here are some of the few design patterns that you can use to better your MongoDB schema, so you’ll keep your team happy and yourself happier.
Eat the frog: MongoDB Design Patterns
tips and tricks

I Bet You Don’t Use These JavaScript Tricks and Practices

Tell me how many did you know by responding to the article and you may share this with your network to find out how many they know.
I Bet You Don’t Use These JavaScript Tricks and Practices
About Me
Contact
server

Nirjal Paudel