Become a Vim success story
Tags: programming, codequality, vim, beginners
Published: 2022-11-11 13:28:41


## Become a Vim success story

I’ve seen some people fall short when they try to learn Vim. They get frustrated and give up. The excuses is that they slow down or that there are too many commands to learn, and so they fallback to their “good old days”.

In this post I will give you my 2 cents on why learning Vim is a good challenge and why it would benefit you in the long run.

Here is what we are going to go through:

* **What is Vim**

* **My experience**

* **How to get started**

* **What are the next steps**

All good? Let’s start 🔥

## What is Vim?

Vim is one of those scary editors that you enter by accident when you merge with git in the terminal and have a conflict. There is no close button like in our modern editors and the closest way to get out of the horror is to close your terminal or to

![](https://cdn-images-1.medium.com/max/2000/1*HjdvCKiz1B4zt7U07Ik5iA.jpeg)

When we google this we might stumble to the first StackOverflow result [“How to exit Vim?”](https://stackoverflow.com/questions/11828270/how-do-i-exit-vim) with about 2.7 million views🔥.

But Vim shouldn’t be and isn’t all that scary when you start to get the feel for it. And I would like to share my experience on how I started with this beautiful editor.

## My experience

I have been working with Vim for almost 3 years now and would recommend it to any developer if they want to spice up their code writing. While I am typing it feels really smooth and fast … and I really enjoy it 😅.

But it wasn’t always that smooth. Before I started to work with Vim most of my experience was to get out of it quickly and never look back.

But later on I started to feel unsatisfied when writing code and wanted to spice it up.

I am not going to lie, at the beginning it’s really hard to get used to Vim. The muscle memory of clicking shift and ctrl for selecting text will be a problem. **You must fight that urge, **it’s beneficial in the long run!

So after my unsatisfaction, I stumbled on a post for 10 finger typing and how it helps with Vim. It piqued my curiosity, so after work I spent **about 15–20 minutes every day** for a week with 10 fingers. At first it felt really weird, my pinky didn’t like being used for typing 😃, but I went on until I felt more comfortable.

After those 20 minutes, I would go into Vim to edit a text to get comfortable with some of the basic commands.

![](https://cdn-images-1.medium.com/max/2000/1*ac6x9r5uah-1A-fj_QuyDw.jpeg)

Next week I tried Vim at work. You bet if you think the first two days were frustrating and annoying. The times I wanted to switch back to my good old days was a lot, but I kept on pushing.

Working for two whole days with Vim, made me get comfortable with it faster and I was actually catching up to my old speed of writing.

Then after that the rest is history. The more I got to learn how Vim works and how to utilise it, the faster I got and easier it became.

I know for developers writing speed doesn’t matter that much as we read code more than we actually write. But when you have that sudden “Aha” moment and know exactly what you need to type, that moment is really satisfying while you are writing and editing.

## How to get started

I would recommend starting with [https://www.typingclub.com](https://www.typingclub.com), I would even say it’s essential for practicing with 10 finger typing.

Even if you do not start using Vim, the practice will help you to write lighting fast messages to your colleagues.

![](https://cdn-images-1.medium.com/max/2000/1*3ZsyV5VK9b22A3GJKfq1jg.gif)

### TypingClub

TypingClub is a web application with challenges to test your writing skills and how fast you can type.

It is really fun and engaging, because it’s not just writing some random text, but you are also learning. The content they provide is informative and filled with facts. You are really hitting 2 birds with one stone here.

### Starting with Vim

Okay now you feel convinced and are eager to start. But to satisfy your curiosity, I would like to first recommend the tutorial below for you to start with Vim. It covers the basics and will keep you entertained! 😁

{% embed https://youtu.be/1UXHsCT18wE %}

### Setup

Now with the basics covered 🤣 (Actual Vim tutorials are left on the bottom of the page as references).

If you are used to your IDE (like I am) you wouldn’t want to start coding on the terminal like a madman. And luckily for all of us there are Vim plugins for most of the popular IDEs on the market.

* **JetBrains IDEs **— I would recommend the first-party plugin called [IdeaVim](https://plugins.jetbrains.com/plugin/164-ideavim). It integrates really well and it is semi configurable, which allows you to install some of the popular Vim plugins and adding custom mappings.

* **VSCode - **To be honest I am not a fan of VSCode anymore, but I can recommend two of the popular choices from my colleagues. [VSCodeVi](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim)m or [VSCode Neovim](https://marketplace.visualstudio.com/items?itemName=asvetliakov.vscode-neovim). Both seem to be pretty good, but do take these recommendations with a grain of salt.

## What’s next

After you get comfortable with Vim on your IDE you might want to try out Vim on your terminal.

Personally I am in love with my IDE and couldn’t find a good setup to completely migrate to vim on the terminal.

I completely love that Vim is very configurable and can be made to look and feel to one’s personal style. What I do is when I have to change some configuration files in a remote server, I first upload my Vim configuration. With a couple of plugins ([FZF](https://github.com/junegunn/fzf.vim), [CoC Vim](https://github.com/neoclide/coc.nvim) and some syntax plugins) I can have an editor in the remote server equivalent to VSCode. Which is awesome!

## Wrap Up

Here is a recap:

* Practice makes perfect. Try to find some time every day to practice your 10 finger typing.

* Make sure to commit yourself to Vim to get the most benefit.

* Watch a quick tutorial. 🤣

* Install it in one of your commonly used IDEs.

* Unleash Vim when you ssh to remote servers.

**Wish you all the best when learning Vim and happy Vimming! 🔥**

## References

* [Learn Vim In A Week](https://www.youtube.com/watch?v=_NUO4JEtkDw)

* [Good first steps to learn the motion commands](https://tech.osteel.me/posts/vim-is-much-cooler-than-you-think)

* [Configuring Vim to work like VSCode](https://www.youtube.com/watch?v=gnupOrSEikQ)