My Journey with Vim and Vim Motion: Why You Should Begin Yours Today

Aakash KhanalAakash Khanal
6 min read

To be clear right from the start—I’m no Vim or Vim motions expert. That said, after using them consistently for a little over two months, I’ve reached a point where they genuinely boost my workflow instead of hindering it. This article serves as a milestone in my journey and, hopefully, an inspiration for you to explore Vim and Vim motions yourself.

For those unfamiliar, Vim is an open-source, terminal-based text editor. It’s an enhanced version of the Vi text editor, originally released in 1991. Vim starts off as a minimal editor upon installation, but it can be significantly enhanced and customized with a vast array of available plugins. The real power of Vim comes with Vim motions. These are commands that let you move or navigate within the text editor. When typed, they allow you to move your cursor and traverse files with incredible precision and speed.

Now, this isn’t a Vim tutorial, so let’s put our learning hats aside for a moment. Instead, let me share how—and why—I decided to start using Vim in the first place.

My Journey

INTRODUCTION

First, let me introduce myself—I’m your average web developer, using TypeScript and Nodejs wherever possible (even for things where you should never be using node). So, you can probably guess it: yes, I was a VS Coder. VS Code isn’t a bad text editor at all—it offers all the tools you need right from the start, making it easy to jump straight into coding. I was having a great time 'VS Coding'. One day, back in college, I was in a Flutter class, VS Coding my way through it. At this point, I didn’t even know Vim existed. Right across from me sat a friend who was a Vim user. Every time I glanced at his laptop or asked for help, I saw him blazingly fast, moving across files, navigating inside a file, top to bottom, left and right—without ever touching a mouse. It was like watching a magic show. That’s how I was first introduced to Vim and I wanted to join the party.

STRUGGLES

I installed Vim right off the bat, but quickly realized how bare-bones it was. It felt like writing code in Notepad, but with the extra challenge of not being able to use simple shortcuts like Ctrl + C, Ctrl + V, or even Ctrl + S. Thankfully, my friend taught me how to use :q, so no memes there!.

After some further research, I discovered there’s a Vim extension for VS Code that brings all those lovely Vim motions to my beloved editor. 'Oh, save me my VS Code!' I said, and quickly installed the extension. I thought it would be smooth sailing from there, but I was so wrong. Vim motions make life much harder when you don’t have muscle memory for them. Although now I had my LSPs and file trees managed being by VS Code, I still struggled with navigating around my code. You know, learning Vim motions is like learning to touch type. Until you're fully accustomed to the methods, your speed is probably 3x or even 4x slower.

Like most of us probably do on our first attempt, I gave up on Vim and removed it entirely from my life, going back to the way things used to be. This happened almost two years ago. After that, I would occasionally download Vim, trying to learn it, only to give up again and again. At one point, I even set up Vim with all the LSP goodies, linting, and everything. But honestly, the setup process was more fun than actually using it, so I ended up giving up once more.

REDEMPTION

Few of months ago, I started watching a YouTuber named Primeagen. If you know him, you know he’s all about Vim and its ecosystem. Watching him made me realize why I wanted to learn Vim in the first place—the sheer fun of those blazing-fast movements once you get past the initial hurdles.

This time, I decided I would force myself to use the Vim plugin as my daily driver for at least a month, no matter how difficult it might be. What I found was that using the Vim and Vim motion plugin on and off for the past two years had actually helped me a lot. I was more comfortable navigating (or 'jking') around the editor. Simple tasks like selecting, copying, pasting, and performing basic actions became easier. As I committed to learning, I started searching for commands instead of reaching for the mouse or just disabling the Vim extension. Although I was still pretty slow at completing my tasks, I actually started enjoying the Vim way of doing things.

For me, the best way to learn Vim motions wasn’t trying to memorize 50 commands all at once. Instead, I focused on searching for a command when I needed it and then tried to develop a habit around it if I found it useful. This approach helped me avoid a lot of frustration.

Now, two months in, I’ve installed and set up Neovim (a more customizable version of Vim) and am using it as my daily driver. The best part about all of this is that it has brought fun back into programming. Mundane tasks, like going through written code, feel like a game when you’re just jumping around. Basic commands like ciw and ciB let you edit your code in ways you’ve never experienced before. At this point in my journey, my hands have become mapped to these frequently used commands, and it feels awesome. And most importantly, you can toss that mouse out the window—we won’t be needing it anymore!

Why and how you might want to learn Vim or Vim motions?

Vim, with its Vim motions, is designed to improve your workflow and boost productivity. If you watch someone using Vim, you'll see this in action—how effortlessly they can jump around and edit large chunks of text, dramatically improving their speed. However, I don't recommend beginners dive straight into Vim as a text editor. It's a lot to take in, and you’ll probably give up quickly.

What you should focus on learning are the Vim motions. These are the commands that will truly enhance your workflow and make programming a fun experience. Just imagine not having to think about where to go or how to navigate, but simply being in your zone and pressing just a few keys to jump anywhere and edit anything. It's something you have to experience to truly get a feel for.

So, my recommendation would be to start by installing the Vim plugin in your favorite IDE. Almost every IDE has a Vim motion plugin, and yours probably does too. Give it a spin, but don’t get frustrated if it slows you down initially—it will. If you need to get something done quickly, simply turn off the extension, finish your task the normal way, and turn it back on. Look for learning materials online and dedicate a little of your free time to practicing. I can assure you that once you get past the initial hurdle—which, by the way, won’t take long if you really commit to it (maybe a few weeks at most)—it will drastically improve your programming experience and bring the fun back into coding.

HAPPY VIMMING!!!

12
Subscribe to my newsletter

Read articles from Aakash Khanal directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Aakash Khanal
Aakash Khanal